VS: Make MS-tool-specific options conditional
Make blocks adding MS-tool-specific options conditional on a new "MSTools" boolean member of cmVisualStudio10TargetGenerator. Hard-code the member to true for now to preserve existing behavior.
This commit is contained in:
parent
e4510941a3
commit
7a9909db86
|
@ -41,6 +41,8 @@
|
||||||
|
|
||||||
cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetClFlagTable() const
|
cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetClFlagTable() const
|
||||||
{
|
{
|
||||||
|
if(this->MSTools)
|
||||||
|
{
|
||||||
cmLocalVisualStudioGenerator::VSVersion
|
cmLocalVisualStudioGenerator::VSVersion
|
||||||
v = this->LocalGenerator->GetVersion();
|
v = this->LocalGenerator->GetVersion();
|
||||||
if(v >= cmLocalVisualStudioGenerator::VS14)
|
if(v >= cmLocalVisualStudioGenerator::VS14)
|
||||||
|
@ -51,10 +53,14 @@ cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetClFlagTable() const
|
||||||
{ return cmVS11CLFlagTable; }
|
{ return cmVS11CLFlagTable; }
|
||||||
else
|
else
|
||||||
{ return cmVS10CLFlagTable; }
|
{ return cmVS10CLFlagTable; }
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetRcFlagTable() const
|
cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetRcFlagTable() const
|
||||||
{
|
{
|
||||||
|
if(this->MSTools)
|
||||||
|
{
|
||||||
cmLocalVisualStudioGenerator::VSVersion
|
cmLocalVisualStudioGenerator::VSVersion
|
||||||
v = this->LocalGenerator->GetVersion();
|
v = this->LocalGenerator->GetVersion();
|
||||||
if(v >= cmLocalVisualStudioGenerator::VS14)
|
if(v >= cmLocalVisualStudioGenerator::VS14)
|
||||||
|
@ -65,10 +71,14 @@ cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetRcFlagTable() const
|
||||||
{ return cmVS11RCFlagTable; }
|
{ return cmVS11RCFlagTable; }
|
||||||
else
|
else
|
||||||
{ return cmVS10RCFlagTable; }
|
{ return cmVS10RCFlagTable; }
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetLibFlagTable() const
|
cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetLibFlagTable() const
|
||||||
{
|
{
|
||||||
|
if(this->MSTools)
|
||||||
|
{
|
||||||
cmLocalVisualStudioGenerator::VSVersion
|
cmLocalVisualStudioGenerator::VSVersion
|
||||||
v = this->LocalGenerator->GetVersion();
|
v = this->LocalGenerator->GetVersion();
|
||||||
if(v >= cmLocalVisualStudioGenerator::VS14)
|
if(v >= cmLocalVisualStudioGenerator::VS14)
|
||||||
|
@ -79,10 +89,14 @@ cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetLibFlagTable() const
|
||||||
{ return cmVS11LibFlagTable; }
|
{ return cmVS11LibFlagTable; }
|
||||||
else
|
else
|
||||||
{ return cmVS10LibFlagTable; }
|
{ return cmVS10LibFlagTable; }
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetLinkFlagTable() const
|
cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetLinkFlagTable() const
|
||||||
{
|
{
|
||||||
|
if(this->MSTools)
|
||||||
|
{
|
||||||
cmLocalVisualStudioGenerator::VSVersion
|
cmLocalVisualStudioGenerator::VSVersion
|
||||||
v = this->LocalGenerator->GetVersion();
|
v = this->LocalGenerator->GetVersion();
|
||||||
if(v >= cmLocalVisualStudioGenerator::VS14)
|
if(v >= cmLocalVisualStudioGenerator::VS14)
|
||||||
|
@ -93,6 +107,8 @@ cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetLinkFlagTable() const
|
||||||
{ return cmVS11LinkFlagTable; }
|
{ return cmVS11LinkFlagTable; }
|
||||||
else
|
else
|
||||||
{ return cmVS10LinkFlagTable; }
|
{ return cmVS10LinkFlagTable; }
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::string cmVS10EscapeXML(std::string arg)
|
static std::string cmVS10EscapeXML(std::string arg)
|
||||||
|
@ -142,6 +158,7 @@ cmVisualStudio10TargetGenerator(cmTarget* target,
|
||||||
this->GlobalGenerator->CreateGUID(this->Name.c_str());
|
this->GlobalGenerator->CreateGUID(this->Name.c_str());
|
||||||
this->GUID = this->GlobalGenerator->GetGUID(this->Name.c_str());
|
this->GUID = this->GlobalGenerator->GetGUID(this->Name.c_str());
|
||||||
this->Platform = gg->GetPlatformName();
|
this->Platform = gg->GetPlatformName();
|
||||||
|
this->MSTools = true;
|
||||||
this->BuildFileStream = 0;
|
this->BuildFileStream = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -532,7 +549,10 @@ void cmVisualStudio10TargetGenerator::WriteProjectConfigurationValues()
|
||||||
configType += "</ConfigurationType>\n";
|
configType += "</ConfigurationType>\n";
|
||||||
this->WriteString(configType.c_str(), 2);
|
this->WriteString(configType.c_str(), 2);
|
||||||
|
|
||||||
|
if(this->MSTools)
|
||||||
|
{
|
||||||
this->WriteMSToolConfigurationValues(*i);
|
this->WriteMSToolConfigurationValues(*i);
|
||||||
|
}
|
||||||
|
|
||||||
this->WriteString("</PropertyGroup>\n", 1);
|
this->WriteString("</PropertyGroup>\n", 1);
|
||||||
}
|
}
|
||||||
|
@ -1447,17 +1467,23 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions(
|
||||||
|
|
||||||
// Get preprocessor definitions for this directory.
|
// Get preprocessor definitions for this directory.
|
||||||
std::string defineFlags = this->Target->GetMakefile()->GetDefineFlags();
|
std::string defineFlags = this->Target->GetMakefile()->GetDefineFlags();
|
||||||
|
if(this->MSTools)
|
||||||
|
{
|
||||||
clOptions.FixExceptionHandlingDefault();
|
clOptions.FixExceptionHandlingDefault();
|
||||||
clOptions.AddFlag("PrecompiledHeader", "NotUsing");
|
clOptions.AddFlag("PrecompiledHeader", "NotUsing");
|
||||||
std::string asmLocation = configName + "/";
|
std::string asmLocation = configName + "/";
|
||||||
clOptions.AddFlag("AssemblerListingLocation", asmLocation.c_str());
|
clOptions.AddFlag("AssemblerListingLocation", asmLocation.c_str());
|
||||||
|
}
|
||||||
clOptions.Parse(flags.c_str());
|
clOptions.Parse(flags.c_str());
|
||||||
clOptions.Parse(defineFlags.c_str());
|
clOptions.Parse(defineFlags.c_str());
|
||||||
std::vector<std::string> targetDefines;
|
std::vector<std::string> targetDefines;
|
||||||
this->Target->GetCompileDefinitions(targetDefines, configName.c_str());
|
this->Target->GetCompileDefinitions(targetDefines, configName.c_str());
|
||||||
clOptions.AddDefines(targetDefines);
|
clOptions.AddDefines(targetDefines);
|
||||||
|
if(this->MSTools)
|
||||||
|
{
|
||||||
clOptions.SetVerboseMakefile(
|
clOptions.SetVerboseMakefile(
|
||||||
this->Makefile->IsOn("CMAKE_VERBOSE_MAKEFILE"));
|
this->Makefile->IsOn("CMAKE_VERBOSE_MAKEFILE"));
|
||||||
|
}
|
||||||
|
|
||||||
// Add a definition for the configuration name.
|
// Add a definition for the configuration name.
|
||||||
std::string configDefine = "CMAKE_INTDIR=\"";
|
std::string configDefine = "CMAKE_INTDIR=\"";
|
||||||
|
@ -1486,6 +1512,8 @@ void cmVisualStudio10TargetGenerator::WriteClOptions(
|
||||||
clOptions.OutputPreprocessorDefinitions(*this->BuildFileStream, " ",
|
clOptions.OutputPreprocessorDefinitions(*this->BuildFileStream, " ",
|
||||||
"\n", "CXX");
|
"\n", "CXX");
|
||||||
|
|
||||||
|
if(this->MSTools)
|
||||||
|
{
|
||||||
this->WriteString("<ObjectFileName>$(IntDir)</ObjectFileName>\n", 3);
|
this->WriteString("<ObjectFileName>$(IntDir)</ObjectFileName>\n", 3);
|
||||||
|
|
||||||
// If not in debug mode, write the DebugInformationFormat field
|
// If not in debug mode, write the DebugInformationFormat field
|
||||||
|
@ -1505,6 +1533,7 @@ void cmVisualStudio10TargetGenerator::WriteClOptions(
|
||||||
*this->BuildFileStream << cmVS10EscapeXML(pdb)
|
*this->BuildFileStream << cmVS10EscapeXML(pdb)
|
||||||
<< "</ProgramDataBaseFileName>\n";
|
<< "</ProgramDataBaseFileName>\n";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this->WriteString("</ClCompile>\n", 2);
|
this->WriteString("</ClCompile>\n", 2);
|
||||||
}
|
}
|
||||||
|
@ -1567,6 +1596,10 @@ void cmVisualStudio10TargetGenerator::
|
||||||
WriteRCOptions(std::string const& configName,
|
WriteRCOptions(std::string const& configName,
|
||||||
std::vector<std::string> const & includes)
|
std::vector<std::string> const & includes)
|
||||||
{
|
{
|
||||||
|
if(!this->MSTools)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
this->WriteString("<ResourceCompile>\n", 2);
|
this->WriteString("<ResourceCompile>\n", 2);
|
||||||
|
|
||||||
// Preprocessor definitions and includes are shared with clOptions.
|
// Preprocessor definitions and includes are shared with clOptions.
|
||||||
|
@ -1754,6 +1787,8 @@ cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config)
|
||||||
config.c_str());
|
config.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(this->MSTools)
|
||||||
|
{
|
||||||
linkOptions.AddFlag("Version", "");
|
linkOptions.AddFlag("Version", "");
|
||||||
|
|
||||||
if ( this->Target->GetPropertyAsBool("WIN32_EXECUTABLE") )
|
if ( this->Target->GetPropertyAsBool("WIN32_EXECUTABLE") )
|
||||||
|
@ -1788,12 +1823,18 @@ cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config)
|
||||||
|
|
||||||
linkOptions.AddFlag("ImportLibrary", imLib.c_str());
|
linkOptions.AddFlag("ImportLibrary", imLib.c_str());
|
||||||
linkOptions.AddFlag("ProgramDataBaseFile", pdb.c_str());
|
linkOptions.AddFlag("ProgramDataBaseFile", pdb.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
linkOptions.Parse(flags.c_str());
|
linkOptions.Parse(flags.c_str());
|
||||||
|
|
||||||
|
if(this->MSTools)
|
||||||
|
{
|
||||||
std::string def = this->GeneratorTarget->GetModuleDefinitionFile("");
|
std::string def = this->GeneratorTarget->GetModuleDefinitionFile("");
|
||||||
if(!def.empty())
|
if(!def.empty())
|
||||||
{
|
{
|
||||||
linkOptions.AddFlag("ModuleDefinitionFile", def.c_str());
|
linkOptions.AddFlag("ModuleDefinitionFile", def.c_str());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this->LinkOptions[config] = pOptions.release();
|
this->LinkOptions[config] = pOptions.release();
|
||||||
return true;
|
return true;
|
||||||
|
@ -1857,6 +1898,11 @@ void cmVisualStudio10TargetGenerator::
|
||||||
WriteMidlOptions(std::string const& /*config*/,
|
WriteMidlOptions(std::string const& /*config*/,
|
||||||
std::vector<std::string> const & includes)
|
std::vector<std::string> const & includes)
|
||||||
{
|
{
|
||||||
|
if(!this->MSTools)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// This processes *any* of the .idl files specified in the project's file
|
// This processes *any* of the .idl files specified in the project's file
|
||||||
// list (and passed as the item metadata %(Filename) expressing the rule
|
// list (and passed as the item metadata %(Filename) expressing the rule
|
||||||
// input filename) into output files at the per-config *build* dir
|
// input filename) into output files at the per-config *build* dir
|
||||||
|
|
|
@ -120,6 +120,7 @@ private:
|
||||||
std::string Platform;
|
std::string Platform;
|
||||||
std::string GUID;
|
std::string GUID;
|
||||||
std::string Name;
|
std::string Name;
|
||||||
|
bool MSTools;
|
||||||
cmGlobalVisualStudio10Generator* GlobalGenerator;
|
cmGlobalVisualStudio10Generator* GlobalGenerator;
|
||||||
cmGeneratedFileStream* BuildFileStream;
|
cmGeneratedFileStream* BuildFileStream;
|
||||||
cmLocalVisualStudio7Generator* LocalGenerator;
|
cmLocalVisualStudio7Generator* LocalGenerator;
|
||||||
|
|
Loading…
Reference in New Issue