VS2010: Fixed GenerateManifest flag (#10704)
Thanks to "McBen <viertelvor12@gmx.net>" for the patch. (Did not preserve original commit author information because we have a push check for first and last name, and do not accept authors with only an alias...)
This commit is contained in:
parent
7258b0674c
commit
98b448ee9e
|
@ -171,3 +171,9 @@ void cmIDEOptions::AddFlag(const char* flag, const char* value)
|
||||||
{
|
{
|
||||||
this->FlagMap[flag] = value;
|
this->FlagMap[flag] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
void cmIDEOptions::RemoveFlag(const char* flag)
|
||||||
|
{
|
||||||
|
this->FlagMap.erase(flag);
|
||||||
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@ public:
|
||||||
void AddDefine(const std::string& define);
|
void AddDefine(const std::string& define);
|
||||||
void AddDefines(const char* defines);
|
void AddDefines(const char* defines);
|
||||||
void AddFlag(const char* flag, const char* value);
|
void AddFlag(const char* flag, const char* value);
|
||||||
|
void RemoveFlag(const char* flag);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// create a map of xml tags to the values they should have in the output
|
// create a map of xml tags to the values they should have in the output
|
||||||
|
|
|
@ -167,6 +167,7 @@ void cmVisualStudio10TargetGenerator::Generate()
|
||||||
// Write the encoding header into the file
|
// Write the encoding header into the file
|
||||||
char magic[] = {0xEF,0xBB, 0xBF};
|
char magic[] = {0xEF,0xBB, 0xBF};
|
||||||
this->BuildFileStream->write(magic, 3);
|
this->BuildFileStream->write(magic, 3);
|
||||||
|
this->WriteString("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n",0);
|
||||||
this->WriteString("<Project DefaultTargets=\"Build\" "
|
this->WriteString("<Project DefaultTargets=\"Build\" "
|
||||||
"ToolsVersion=\"4.0\" "
|
"ToolsVersion=\"4.0\" "
|
||||||
"xmlns=\"http://schemas.microsoft.com/"
|
"xmlns=\"http://schemas.microsoft.com/"
|
||||||
|
@ -998,6 +999,15 @@ OutputLinkIncremental(std::string const& configName)
|
||||||
this->WritePlatformConfigTag("LinkIncremental", configName.c_str(), 3);
|
this->WritePlatformConfigTag("LinkIncremental", configName.c_str(), 3);
|
||||||
*this->BuildFileStream << incremental
|
*this->BuildFileStream << incremental
|
||||||
<< "</LinkIncremental>\n";
|
<< "</LinkIncremental>\n";
|
||||||
|
|
||||||
|
const char* manifest = "true";
|
||||||
|
if(flags.find("MANIFEST:NO") != flags.npos)
|
||||||
|
{
|
||||||
|
manifest = "false";
|
||||||
|
}
|
||||||
|
this->WritePlatformConfigTag("GenerateManifest", configName.c_str(), 3);
|
||||||
|
*this->BuildFileStream << manifest
|
||||||
|
<< "</GenerateManifest>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
@ -1326,7 +1336,7 @@ void cmVisualStudio10TargetGenerator::WriteLinkOptions(std::string const&
|
||||||
linkDirs += "%(AdditionalLibraryDirectories)";
|
linkDirs += "%(AdditionalLibraryDirectories)";
|
||||||
linkOptions.AddFlag("AdditionalLibraryDirectories", linkDirs.c_str());
|
linkOptions.AddFlag("AdditionalLibraryDirectories", linkDirs.c_str());
|
||||||
linkOptions.AddFlag("AdditionalDependencies", libs.c_str());
|
linkOptions.AddFlag("AdditionalDependencies", libs.c_str());
|
||||||
linkOptions.AddFlag("Version", "0.0");
|
linkOptions.AddFlag("Version", "");
|
||||||
if(linkOptions.IsDebug() || flags.find("/debug") != flags.npos)
|
if(linkOptions.IsDebug() || flags.find("/debug") != flags.npos)
|
||||||
{
|
{
|
||||||
linkOptions.AddFlag("GenerateDebugInformation", "true");
|
linkOptions.AddFlag("GenerateDebugInformation", "true");
|
||||||
|
@ -1369,6 +1379,8 @@ void cmVisualStudio10TargetGenerator::WriteLinkOptions(std::string const&
|
||||||
linkOptions.AddFlag("ModuleDefinitionFile",
|
linkOptions.AddFlag("ModuleDefinitionFile",
|
||||||
this->ModuleDefinitionFile.c_str());
|
this->ModuleDefinitionFile.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
linkOptions.RemoveFlag("GenerateManifest");
|
||||||
linkOptions.OutputAdditionalOptions(*this->BuildFileStream, " ", "");
|
linkOptions.OutputAdditionalOptions(*this->BuildFileStream, " ", "");
|
||||||
linkOptions.OutputFlagMap(*this->BuildFileStream, " ");
|
linkOptions.OutputFlagMap(*this->BuildFileStream, " ");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue