Explorar o código

VS: Encode mapped flag values in XML project files (#15031)

Teach cmVisualStudioGeneratorOptions to encode FlagMap entries
and the FlagString value properly in vcproj/vcxproj XML files.
Update the one existing call site that pre-encoded the value
to not do so.
Brad King %!s(int64=11) %!d(string=hai) anos
pai
achega
29a0642ba7

+ 1 - 1
Source/cmLocalVisualStudio7Generator.cxx

@@ -1013,7 +1013,7 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
   if(!this->ModuleDefinitionFile.empty())
     {
     std::string defFile =
-      this->ConvertToXMLOutputPath(this->ModuleDefinitionFile.c_str());
+      this->ConvertToOptionallyRelativeOutputPath(this->ModuleDefinitionFile);
     linkOptions.AddFlag("ModuleDefinitionFile", defFile.c_str());
     }
   switch(target.GetType())

+ 3 - 3
Source/cmVisualStudioGeneratorOptions.cxx

@@ -321,7 +321,7 @@ cmVisualStudioGeneratorOptions
       for(std::vector<std::string>::iterator i = m->second.begin();
             i != m->second.end(); ++i)
         {
-        fout << sep << *i;
+        fout << sep << cmVisualStudio10GeneratorOptionsEscapeForXML(*i);
         sep = ";";
         }
       if (m->first == "AdditionalIncludeDirectories")
@@ -341,7 +341,7 @@ cmVisualStudioGeneratorOptions
       for(std::vector<std::string>::iterator i = m->second.begin();
             i != m->second.end(); ++i)
         {
-        fout << sep << *i;
+        fout << sep << cmVisualStudioGeneratorOptionsEscapeForXML(*i);
         sep = ";";
         }
       fout << "\"\n";
@@ -373,7 +373,7 @@ cmVisualStudioGeneratorOptions
         {
         fout << "<AdditionalOptions>";
         }
-      fout << this->FlagString.c_str()
+      fout << cmVisualStudio10GeneratorOptionsEscapeForXML(this->FlagString)
            << " %(AdditionalOptions)</AdditionalOptions>\n";
       }
     else