Pārlūkot izejas kodu

VS: Track explicitly when platform is specified in generator name

Brad King 6 gadi atpakaļ
vecāks
revīzija
b91f6f39f7

+ 2 - 2
Source/cmGlobalVisualStudio10Generator.cxx

@@ -407,7 +407,7 @@ bool cmGlobalVisualStudio10Generator::InitializeSystem(cmMakefile* mf)
       return false;
     }
   } else if (this->SystemName == "Android") {
-    if (this->DefaultPlatformName != "Win32") {
+    if (this->PlatformInGeneratorName) {
       std::ostringstream e;
       e << "CMAKE_SYSTEM_NAME is 'Android' but CMAKE_GENERATOR "
         << "specifies a platform too: '" << this->GetName() << "'";
@@ -438,7 +438,7 @@ bool cmGlobalVisualStudio10Generator::InitializeWindows(cmMakefile*)
 
 bool cmGlobalVisualStudio10Generator::InitializeWindowsCE(cmMakefile* mf)
 {
-  if (this->DefaultPlatformName != "Win32") {
+  if (this->PlatformInGeneratorName) {
     std::ostringstream e;
     e << "CMAKE_SYSTEM_NAME is 'WindowsCE' but CMAKE_GENERATOR "
       << "specifies a platform too: '" << this->GetName() << "'";

+ 1 - 1
Source/cmGlobalVisualStudio8Generator.cxx

@@ -61,7 +61,7 @@ void cmGlobalVisualStudio8Generator::AddPlatformDefinitions(cmMakefile* mf)
 bool cmGlobalVisualStudio8Generator::SetGeneratorPlatform(std::string const& p,
                                                           cmMakefile* mf)
 {
-  if (this->DefaultPlatformName == "Win32") {
+  if (!this->PlatformInGeneratorName) {
     this->GeneratorPlatform = p;
     return this->cmGlobalVisualStudio7Generator::SetGeneratorPlatform("", mf);
   } else {

+ 1 - 0
Source/cmGlobalVisualStudioGenerator.cxx

@@ -32,6 +32,7 @@ cmGlobalVisualStudioGenerator::cmGlobalVisualStudioGenerator(
     this->DefaultPlatformName = "Win32";
   } else {
     this->DefaultPlatformName = platformInGeneratorName;
+    this->PlatformInGeneratorName = true;
   }
 }
 

+ 1 - 0
Source/cmGlobalVisualStudioGenerator.h

@@ -178,6 +178,7 @@ protected:
 
   std::string GeneratorPlatform;
   std::string DefaultPlatformName;
+  bool PlatformInGeneratorName = false;
 
 private:
   virtual std::string GetVSMakeProgram() = 0;