1
0
Эх сурвалжийг харах

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.
Brad King 8 жил өмнө
parent
commit
298493769f

+ 2 - 2
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 =

+ 3 - 6
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: ";

+ 0 - 12
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;