Procházet zdrojové kódy

VS: Fix vcxproj elements specifying binary output locations

Fix generation of OutDir, IntDir, TargetName, and TargetExt element
values to encode the values for XML.
Brad King před 11 roky
rodič
revize
39af06e7f7
1 změnil soubory, kde provedl 8 přidání a 9 odebrání
  1. 8 9
      Source/cmVisualStudio10TargetGenerator.cxx

+ 8 - 9
Source/cmVisualStudio10TargetGenerator.cxx

@@ -1263,23 +1263,22 @@ void cmVisualStudio10TargetGenerator::WritePathAndIncrementalLinkOptions()
       this->ConvertToWindowsSlash(outDir);
       this->ConvertToWindowsSlash(outDir);
 
 
       this->WritePlatformConfigTag("OutDir", config->c_str(), 3);
       this->WritePlatformConfigTag("OutDir", config->c_str(), 3);
-      *this->BuildFileStream << outDir
+      *this->BuildFileStream << cmVS10EscapeXML(outDir)
                              << "</OutDir>\n";
                              << "</OutDir>\n";
 
 
       this->WritePlatformConfigTag("IntDir", config->c_str(), 3);
       this->WritePlatformConfigTag("IntDir", config->c_str(), 3);
-      *this->BuildFileStream << intermediateDir
+      *this->BuildFileStream << cmVS10EscapeXML(intermediateDir)
                              << "</IntDir>\n";
                              << "</IntDir>\n";
 
 
+      std::string name =
+        cmSystemTools::GetFilenameWithoutLastExtension(targetNameFull);
       this->WritePlatformConfigTag("TargetName", config->c_str(), 3);
       this->WritePlatformConfigTag("TargetName", config->c_str(), 3);
-      *this->BuildFileStream
-        << cmSystemTools::GetFilenameWithoutLastExtension(
-             targetNameFull.c_str())
-        << "</TargetName>\n";
+      *this->BuildFileStream << cmVS10EscapeXML(name) << "</TargetName>\n";
 
 
+      std::string ext =
+        cmSystemTools::GetFilenameLastExtension(targetNameFull);
       this->WritePlatformConfigTag("TargetExt", config->c_str(), 3);
       this->WritePlatformConfigTag("TargetExt", config->c_str(), 3);
-      *this->BuildFileStream
-        << cmSystemTools::GetFilenameLastExtension(targetNameFull.c_str())
-        << "</TargetExt>\n";
+      *this->BuildFileStream << cmVS10EscapeXML(ext) << "</TargetExt>\n";
 
 
       this->OutputLinkIncremental(*config);
       this->OutputLinkIncremental(*config);
       }
       }