diff options
author | Brad King <brad.king@kitware.com> | 2014-06-04 17:09:35 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-06-04 17:16:37 (GMT) |
commit | 98afb4549f66c692eeec8bbc8a1f7b333d3051a5 (patch) | |
tree | 28479e8e5b6545df3589041e0024eaf5f12d1005 /Source | |
parent | 3e9f6e36f3f5fd50303d1b71fc153c0ae8f916f5 (diff) | |
download | CMake-98afb4549f66c692eeec8bbc8a1f7b333d3051a5.zip CMake-98afb4549f66c692eeec8bbc8a1f7b333d3051a5.tar.gz CMake-98afb4549f66c692eeec8bbc8a1f7b333d3051a5.tar.bz2 |
VS: Split user- and generator-provided PlatformToolset
Divide the cmGlobalVisualStudio10Generator "PlatformToolset" member into
two members representing the generator-selected default toolset and the
user-specified CMAKE_GENERATOR_TOOLSET value. Prefer the user-specified
value, if any, and then fall back to the generator-selected default.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmGlobalVisualStudio10Generator.cxx | 28 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio10Generator.h | 6 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio11Generator.cxx | 2 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio12Generator.cxx | 2 |
4 files changed, 25 insertions, 13 deletions
diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index 37a416b..a252fa0 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -118,7 +118,7 @@ cmGlobalVisualStudio10Generator::MatchesGeneratorName( bool cmGlobalVisualStudio10Generator::SetGeneratorToolset(std::string const& ts) { - this->PlatformToolset = ts; + this->GeneratorToolset = ts; return true; } @@ -126,10 +126,16 @@ cmGlobalVisualStudio10Generator::SetGeneratorToolset(std::string const& ts) void cmGlobalVisualStudio10Generator::AddPlatformDefinitions(cmMakefile* mf) { cmGlobalVisualStudio8Generator::AddPlatformDefinitions(mf); - if(!this->PlatformToolset.empty()) + this->AddVSPlatformToolsetDefinition(mf); +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio10Generator +::AddVSPlatformToolsetDefinition(cmMakefile* mf) const +{ + if(const char* toolset = this->GetPlatformToolset()) { - mf->AddDefinition("CMAKE_VS_PLATFORM_TOOLSET", - this->PlatformToolset.c_str()); + mf->AddDefinition("CMAKE_VS_PLATFORM_TOOLSET", toolset); } } @@ -215,11 +221,15 @@ void cmGlobalVisualStudio10Generator } //---------------------------------------------------------------------------- -const char* cmGlobalVisualStudio10Generator::GetPlatformToolset() +const char* cmGlobalVisualStudio10Generator::GetPlatformToolset() const { - if(!this->PlatformToolset.empty()) + if(!this->GeneratorToolset.empty()) + { + return this->GeneratorToolset.c_str(); + } + if(!this->DefaultPlatformToolset.empty()) { - return this->PlatformToolset.c_str(); + return this->DefaultPlatformToolset.c_str(); } return 0; } @@ -417,7 +427,7 @@ void cmGlobalVisualStudio10Generator::GenerateBuildCommand( //---------------------------------------------------------------------------- bool cmGlobalVisualStudio10Generator::Find64BitTools(cmMakefile* mf) { - if(!this->PlatformToolset.empty()) + if(this->GetPlatformToolset()) { return true; } @@ -435,7 +445,7 @@ bool cmGlobalVisualStudio10Generator::Find64BitTools(cmMakefile* mf) cmOStringStream m; m << "Found Windows SDK v7.1: " << winSDK_7_1; mf->DisplayStatus(m.str().c_str(), -1); - this->PlatformToolset = "Windows7.1SDK"; + this->DefaultPlatformToolset = "Windows7.1SDK"; return true; } else diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h index ede6b1b..0360fa6 100644 --- a/Source/cmGlobalVisualStudio10Generator.h +++ b/Source/cmGlobalVisualStudio10Generator.h @@ -66,7 +66,7 @@ public: bool IsMasmEnabled() const { return this->MasmEnabled; } /** The toolset name for the target platform. */ - const char* GetPlatformToolset(); + const char* GetPlatformToolset() const; /** * Where does this version of Visual Studio look for macros for the @@ -99,7 +99,8 @@ protected: std::string const& GetMSBuildCommand(); - std::string PlatformToolset; + std::string GeneratorToolset; + std::string DefaultPlatformToolset; bool ExpressEdition; bool MasmEnabled; @@ -122,5 +123,6 @@ private: virtual std::string FindMSBuildCommand(); virtual std::string FindDevEnvCommand(); virtual std::string GetVSMakeProgram() { return this->GetMSBuildCommand(); } + void AddVSPlatformToolsetDefinition(cmMakefile* mf) const; }; #endif diff --git a/Source/cmGlobalVisualStudio11Generator.cxx b/Source/cmGlobalVisualStudio11Generator.cxx index 4caa7f2..7033f2a 100644 --- a/Source/cmGlobalVisualStudio11Generator.cxx +++ b/Source/cmGlobalVisualStudio11Generator.cxx @@ -117,7 +117,7 @@ cmGlobalVisualStudio11Generator::cmGlobalVisualStudio11Generator( this->ExpressEdition = cmSystemTools::ReadRegistryValue( "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\11.0\\Setup\\VC;" "ProductDir", vc11Express, cmSystemTools::KeyWOW64_32); - this->PlatformToolset = "v110"; + this->DefaultPlatformToolset = "v110"; } //---------------------------------------------------------------------------- diff --git a/Source/cmGlobalVisualStudio12Generator.cxx b/Source/cmGlobalVisualStudio12Generator.cxx index 6cd9f12..40f8b05 100644 --- a/Source/cmGlobalVisualStudio12Generator.cxx +++ b/Source/cmGlobalVisualStudio12Generator.cxx @@ -92,7 +92,7 @@ cmGlobalVisualStudio12Generator::cmGlobalVisualStudio12Generator( this->ExpressEdition = cmSystemTools::ReadRegistryValue( "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\12.0\\Setup\\VC;" "ProductDir", vc12Express, cmSystemTools::KeyWOW64_32); - this->PlatformToolset = "v120"; + this->DefaultPlatformToolset = "v120"; } //---------------------------------------------------------------------------- |