cmGlobalGenerator: Call SetGeneratorToolset even for empty toolset
Move handling of an empty toolset name into the implementation of the method. This simplifies the VS 10 implementation of default toolset selection because it has one code path that is always called.
This commit is contained in:
parent
ff1fddb0bf
commit
03b7b6cda1
|
@ -79,15 +79,22 @@ cmGlobalGenerator::~cmGlobalGenerator()
|
|||
bool cmGlobalGenerator::SetGeneratorToolset(std::string const& ts,
|
||||
cmMakefile* mf)
|
||||
{
|
||||
cmOStringStream e;
|
||||
e <<
|
||||
"Generator\n"
|
||||
" " << this->GetName() << "\n"
|
||||
"does not support toolset specification, but toolset\n"
|
||||
" " << ts << "\n"
|
||||
"was specified.";
|
||||
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
|
||||
return false;
|
||||
if(ts.empty())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
cmOStringStream e;
|
||||
e <<
|
||||
"Generator\n"
|
||||
" " << this->GetName() << "\n"
|
||||
"does not support toolset specification, but toolset\n"
|
||||
" " << ts << "\n"
|
||||
"was specified.";
|
||||
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
std::string cmGlobalGenerator::SelectMakeProgram(
|
||||
|
@ -454,8 +461,7 @@ cmGlobalGenerator::EnableLanguage(std::vector<std::string>const& languages,
|
|||
|
||||
// Tell the generator about the toolset, if any.
|
||||
std::string toolset = mf->GetSafeDefinition("CMAKE_GENERATOR_TOOLSET");
|
||||
if(!toolset.empty() &&
|
||||
!this->SetGeneratorToolset(toolset, mf))
|
||||
if(!this->SetGeneratorToolset(toolset, mf))
|
||||
{
|
||||
cmSystemTools::SetFatalErrorOccured();
|
||||
return;
|
||||
|
|
|
@ -121,7 +121,10 @@ cmGlobalVisualStudio10Generator::SetGeneratorToolset(std::string const& ts,
|
|||
cmMakefile* mf)
|
||||
{
|
||||
this->GeneratorToolset = ts;
|
||||
this->AddVSPlatformToolsetDefinition(mf);
|
||||
if(const char* toolset = this->GetPlatformToolset())
|
||||
{
|
||||
mf->AddDefinition("CMAKE_VS_PLATFORM_TOOLSET", toolset);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -142,7 +145,6 @@ bool cmGlobalVisualStudio10Generator::SetSystemName(std::string const& s,
|
|||
return false;
|
||||
}
|
||||
}
|
||||
this->AddVSPlatformToolsetDefinition(mf);
|
||||
return this->cmGlobalVisualStudio8Generator::SetSystemName(s, mf);
|
||||
}
|
||||
|
||||
|
@ -186,16 +188,6 @@ bool cmGlobalVisualStudio10Generator::InitializeWindowsStore(cmMakefile* mf)
|
|||
return false;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmGlobalVisualStudio10Generator
|
||||
::AddVSPlatformToolsetDefinition(cmMakefile* mf) const
|
||||
{
|
||||
if(const char* toolset = this->GetPlatformToolset())
|
||||
{
|
||||
mf->AddDefinition("CMAKE_VS_PLATFORM_TOOLSET", toolset);
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmGlobalVisualStudio10Generator::WriteSLNHeader(std::ostream& fout)
|
||||
{
|
||||
|
|
|
@ -140,6 +140,5 @@ private:
|
|||
virtual std::string FindMSBuildCommand();
|
||||
virtual std::string FindDevEnvCommand();
|
||||
virtual std::string GetVSMakeProgram() { return this->GetMSBuildCommand(); }
|
||||
void AddVSPlatformToolsetDefinition(cmMakefile* mf) const;
|
||||
};
|
||||
#endif
|
||||
|
|
|
@ -208,8 +208,11 @@ bool cmGlobalXCodeGenerator::SetGeneratorToolset(std::string const& ts,
|
|||
if(this->XcodeVersion >= 30)
|
||||
{
|
||||
this->GeneratorToolset = ts;
|
||||
mf->AddDefinition("CMAKE_XCODE_PLATFORM_TOOLSET",
|
||||
this->GeneratorToolset.c_str());
|
||||
if(!this->GeneratorToolset.empty())
|
||||
{
|
||||
mf->AddDefinition("CMAKE_XCODE_PLATFORM_TOOLSET",
|
||||
this->GeneratorToolset.c_str());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue