浏览代码

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 11 年之前
父节点
当前提交
39af06e7f7
共有 1 个文件被更改,包括 8 次插入9 次删除
  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);
       }
       }