Explorar el Código

CMake: Report whether generators support platforms

Tobias Hunger hace 9 años
padre
commit
4db08807db

+ 6 - 0
Source/cmGlobalGeneratorFactory.h

@@ -41,6 +41,9 @@ public:
 
   /** Determine whether or not this generator supports toolsets */
   virtual bool SupportsToolset() const = 0;
+
+  /** Determine whether or not this generator supports platforms */
+  virtual bool SupportsPlatform() const = 0;
 };
 
 template <class T>
@@ -71,6 +74,9 @@ public:
 
   /** Determine whether or not this generator supports toolsets */
   bool SupportsToolset() const CM_OVERRIDE { return T::SupportsToolset(); }
+
+  /** Determine whether or not this generator supports platforms */
+  bool SupportsPlatform() const CM_OVERRIDE { return T::SupportsPlatform(); }
 };
 
 #endif

+ 6 - 0
Source/cmGlobalGhsMultiGenerator.h

@@ -51,6 +51,12 @@ public:
    */
   static bool SupportsToolset() { return false; }
 
+  /**
+   * Utilized by the generator factory to determine if this generator
+   * supports platforms.
+   */
+  static bool SupportsPlatform() { return false; }
+
   /**
   * Try to determine system information such as shared library
   * extension, pthreads, byte order etc.

+ 6 - 0
Source/cmGlobalNinjaGenerator.h

@@ -80,6 +80,12 @@ public:
    */
   static bool SupportsToolset() { return false; }
 
+  /**
+   * Utilized by the generator factory to determine if this generator
+   * supports platforms.
+   */
+  static bool SupportsPlatform() { return false; }
+
   /**
    * Write a build statement to @a os with the @a comment using
    * the @a rule the list of @a outputs files and inputs.

+ 6 - 0
Source/cmGlobalUnixMakefileGenerator3.h

@@ -75,6 +75,12 @@ public:
    */
   static bool SupportsToolset() { return false; }
 
+  /**
+   * Utilized by the generator factory to determine if this generator
+   * supports platforms.
+   */
+  static bool SupportsPlatform() { return false; }
+
   /** Get the documentation entry for this generator.  */
   static void GetDocumentation(cmDocumentationEntry& entry);
 

+ 1 - 0
Source/cmGlobalVisualStudio10Generator.cxx

@@ -80,6 +80,7 @@ public:
   }
 
   bool SupportsToolset() const CM_OVERRIDE { return true; }
+  bool SupportsPlatform() const CM_OVERRIDE { return true; }
 };
 
 cmGlobalGeneratorFactory* cmGlobalVisualStudio10Generator::NewFactory()

+ 1 - 0
Source/cmGlobalVisualStudio11Generator.cxx

@@ -92,6 +92,7 @@ public:
   }
 
   bool SupportsToolset() const CM_OVERRIDE { return true; }
+  bool SupportsPlatform() const CM_OVERRIDE { return true; }
 };
 
 cmGlobalGeneratorFactory* cmGlobalVisualStudio11Generator::NewFactory()

+ 1 - 0
Source/cmGlobalVisualStudio12Generator.cxx

@@ -74,6 +74,7 @@ public:
   }
 
   bool SupportsToolset() const CM_OVERRIDE { return true; }
+  bool SupportsPlatform() const CM_OVERRIDE { return true; }
 };
 
 cmGlobalGeneratorFactory* cmGlobalVisualStudio12Generator::NewFactory()

+ 1 - 0
Source/cmGlobalVisualStudio14Generator.cxx

@@ -74,6 +74,7 @@ public:
   }
 
   bool SupportsToolset() const CM_OVERRIDE { return true; }
+  bool SupportsPlatform() const CM_OVERRIDE { return true; }
 };
 
 cmGlobalGeneratorFactory* cmGlobalVisualStudio14Generator::NewFactory()

+ 6 - 0
Source/cmGlobalVisualStudio7Generator.h

@@ -47,6 +47,12 @@ public:
    */
   static bool SupportsToolset() { return false; }
 
+  /**
+   * Utilized by the generator factory to determine if this generator
+   * supports platforms.
+   */
+  static bool SupportsPlatform() { return false; }
+
   /**
    * Try to determine system information such as shared library
    * extension, pthreads, byte order etc.

+ 1 - 0
Source/cmGlobalVisualStudio8Generator.cxx

@@ -83,6 +83,7 @@ public:
   }
 
   bool SupportsToolset() const CM_OVERRIDE { return false; }
+  bool SupportsPlatform() const CM_OVERRIDE { return true; }
 };
 
 cmGlobalGeneratorFactory* cmGlobalVisualStudio8Generator::NewFactory()

+ 1 - 0
Source/cmGlobalVisualStudio9Generator.cxx

@@ -86,6 +86,7 @@ public:
   }
 
   bool SupportsToolset() const CM_OVERRIDE { return false; }
+  bool SupportsPlatform() const CM_OVERRIDE { return true; }
 };
 
 cmGlobalGeneratorFactory* cmGlobalVisualStudio9Generator::NewFactory()

+ 1 - 0
Source/cmGlobalXCodeGenerator.cxx

@@ -122,6 +122,7 @@ public:
   }
 
   bool SupportsToolset() const CM_OVERRIDE { return true; }
+  bool SupportsPlatform() const CM_OVERRIDE { return false; }
 };
 
 cmGlobalXCodeGenerator::cmGlobalXCodeGenerator(cmake* cm,

+ 2 - 0
Source/cmake.cxx

@@ -853,6 +853,7 @@ void cmake::GetRegisteredGenerators(std::vector<GeneratorInfo>& generators)
     for (size_t j = 0; j < names.size(); ++j) {
       GeneratorInfo info;
       info.supportsToolset = (*i)->SupportsToolset();
+      info.supportsPlatform = (*i)->SupportsPlatform();
       info.name = names[j];
       generators.push_back(info);
     }
@@ -865,6 +866,7 @@ void cmake::GetRegisteredGenerators(std::vector<GeneratorInfo>& generators)
     GeneratorInfo info;
     info.name = i->first;
     info.supportsToolset = false;
+    info.supportsPlatform = false;
     generators.push_back(info);
   }
 }

+ 1 - 0
Source/cmake.h

@@ -104,6 +104,7 @@ public:
   {
     std::string name;
     bool supportsToolset;
+    bool supportsPlatform;
   };
 
   typedef std::map<std::string, cmInstalledFile> InstalledFilesMap;