Просмотр исходного кода

Merge branch 'backport-vs-fix-config-map' into release-3.9

Merge-request: !1256
Brad King 8 лет назад
Родитель
Сommit
9f66fe9a01

+ 10 - 4
Source/cmGlobalVisualStudio71Generator.cxx

@@ -200,10 +200,16 @@ void cmGlobalVisualStudio71Generator::WriteProjectConfigurations(
   std::string guid = this->GetGUID(name);
   for (std::vector<std::string>::const_iterator i = configs.begin();
        i != configs.end(); ++i) {
-    const char* dstConfig = target.GetProperty("MAP_IMPORTED_CONFIG_" +
-                                               cmSystemTools::UpperCase(*i));
-    if (dstConfig == CM_NULLPTR) {
-      dstConfig = i->c_str();
+    std::vector<std::string> mapConfig;
+    const char* dstConfig = i->c_str();
+    if (target.GetProperty("EXTERNAL_MSPROJECT")) {
+      if (const char* m = target.GetProperty("MAP_IMPORTED_CONFIG_" +
+                                             cmSystemTools::UpperCase(*i))) {
+        cmSystemTools::ExpandListArgument(m, mapConfig);
+        if (!mapConfig.empty()) {
+          dstConfig = mapConfig[0].c_str();
+        }
+      }
     }
     fout << "\t\t{" << guid << "}." << *i << ".ActiveCfg = " << dstConfig
          << "|" << platformName << std::endl;

+ 10 - 4
Source/cmGlobalVisualStudio8Generator.cxx

@@ -354,10 +354,16 @@ void cmGlobalVisualStudio8Generator::WriteProjectConfigurations(
   std::string guid = this->GetGUID(name);
   for (std::vector<std::string>::const_iterator i = configs.begin();
        i != configs.end(); ++i) {
-    const char* dstConfig = target.GetProperty("MAP_IMPORTED_CONFIG_" +
-                                               cmSystemTools::UpperCase(*i));
-    if (dstConfig == CM_NULLPTR) {
-      dstConfig = i->c_str();
+    std::vector<std::string> mapConfig;
+    const char* dstConfig = i->c_str();
+    if (target.GetProperty("EXTERNAL_MSPROJECT")) {
+      if (const char* m = target.GetProperty("MAP_IMPORTED_CONFIG_" +
+                                             cmSystemTools::UpperCase(*i))) {
+        cmSystemTools::ExpandListArgument(m, mapConfig);
+        if (!mapConfig.empty()) {
+          dstConfig = mapConfig[0].c_str();
+        }
+      }
     }
     fout << "\t\t{" << guid << "}." << *i << "|" << this->GetPlatformName()
          << ".ActiveCfg = " << dstConfig << "|"