diff options
author | Brad King <brad.king@kitware.com> | 2017-09-26 19:04:56 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-09-27 11:40:25 (GMT) |
commit | 298493769fe39ba57bdf766c437f1201d0fe5c9c (patch) | |
tree | b500b508e37bcd147f85c665196d298dd4445ba2 | |
parent | 068effa4d8ad2813499a6e79b056d79a2120e1ad (diff) | |
download | CMake-298493769fe39ba57bdf766c437f1201d0fe5c9c.zip CMake-298493769fe39ba57bdf766c437f1201d0fe5c9c.tar.gz CMake-298493769fe39ba57bdf766c437f1201d0fe5c9c.tar.bz2 |
try_compile: Simplify generator platform and toolset propagation
We don't need to save the `CMAKE_GENERATOR_{PLATFORM,TOOLSET}` values
from the cache back into the `cmake` instance. They were used only to
propagate the settings into `cmake` instances for `try_compile`, but we
already have their values in the `cmMakefile`'s variables anyway. In
fact those variables are the ones we actually give to the generators.
-rw-r--r-- | Source/cmMakefile.cxx | 4 | ||||
-rw-r--r-- | Source/cmake.cxx | 9 | ||||
-rw-r--r-- | Source/cmake.h | 12 |
3 files changed, 5 insertions, 20 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 32181cf..5643c97 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -3186,8 +3186,8 @@ int cmMakefile::TryCompile(const std::string& srcdir, // do a configure cm.SetHomeDirectory(srcdir); cm.SetHomeOutputDirectory(bindir); - cm.SetGeneratorPlatform(this->GetCMakeInstance()->GetGeneratorPlatform()); - cm.SetGeneratorToolset(this->GetCMakeInstance()->GetGeneratorToolset()); + cm.SetGeneratorPlatform(this->GetSafeDefinition("CMAKE_GENERATOR_PLATFORM")); + cm.SetGeneratorToolset(this->GetSafeDefinition("CMAKE_GENERATOR_TOOLSET")); cm.LoadCache(); if (!gg->IsMultiConfig()) { if (const char* config = diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 61595d5..fd7151f 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -1328,9 +1328,8 @@ int cmake::ActualConfigure() if (const char* platformName = this->State->GetInitializedCacheValue("CMAKE_GENERATOR_PLATFORM")) { - if (this->GeneratorPlatform.empty()) { - this->GeneratorPlatform = platformName; - } else if (this->GeneratorPlatform != platformName) { + if (!this->GeneratorPlatform.empty() && + this->GeneratorPlatform != platformName) { std::string message = "Error: generator platform: "; message += this->GeneratorPlatform; message += "\nDoes not match the platform used previously: "; @@ -1348,9 +1347,7 @@ int cmake::ActualConfigure() if (const char* tsName = this->State->GetInitializedCacheValue("CMAKE_GENERATOR_TOOLSET")) { - if (this->GeneratorToolset.empty()) { - this->GeneratorToolset = tsName; - } else if (this->GeneratorToolset != tsName) { + if (!this->GeneratorToolset.empty() && this->GeneratorToolset != tsName) { std::string message = "Error: generator toolset: "; message += this->GeneratorToolset; message += "\nDoes not match the toolset used previously: "; diff --git a/Source/cmake.h b/Source/cmake.h index a2054ef..b31b6f5 100644 --- a/Source/cmake.h +++ b/Source/cmake.h @@ -209,24 +209,12 @@ public: this->GeneratorPlatform = ts; } - ///! Get the name of the selected generator-specific platform. - std::string const& GetGeneratorPlatform() const - { - return this->GeneratorPlatform; - } - ///! Set the name of the selected generator-specific toolset. void SetGeneratorToolset(std::string const& ts) { this->GeneratorToolset = ts; } - ///! Get the name of the selected generator-specific toolset. - std::string const& GetGeneratorToolset() const - { - return this->GeneratorToolset; - } - const std::vector<std::string>& GetSourceExtensions() const { return this->SourceFileExtensions; |