From 298493769fe39ba57bdf766c437f1201d0fe5c9c Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 26 Sep 2017 15:04:56 -0400 Subject: 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. --- Source/cmMakefile.cxx | 4 ++-- Source/cmake.cxx | 9 +++------ 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& GetSourceExtensions() const { return this->SourceFileExtensions; -- cgit v0.12