Przeglądaj źródła

Merge topic 'vs-fix-config-map'

64e973e9 Merge branch 'backport-vs-fix-config-map' into vs-fix-config-map
c5b5bb27 VS: Do not consider MAP_IMPORTED_CONFIG_<CONFIG> on non-imported targets

Acked-by: Kitware Robot <[email protected]>
Merge-request: !1256
Brad King 8 lat temu
rodzic
commit
208ac57531

+ 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 == 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 == 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 << "|"