Browse Source

Merge topic 'include_external_ms_project_support_non_windows_target'

2c06e9e7 include_external_msproject: Support non-Windows target platforms
c89e8522 cmGlobalGenerator: Add IsIncludeExternalMSProjectSupported method

Acked-by: Kitware Robot <[email protected]>
Merge-request: !1525
Brad King 8 years ago
parent
commit
83068cb1ed

+ 4 - 0
Source/cmGlobalGenerator.h

@@ -358,6 +358,10 @@ public:
 
   virtual bool IsIPOSupported() const { return false; }
 
+  /** Return whether the generator can import external visual studio project
+      using INCLUDE_EXTERNAL_MSPROJECT */
+  virtual bool IsIncludeExternalMSProjectSupported() const { return false; }
+
   /** Return whether the generator should use EFFECTIVE_PLATFORM_NAME. This is
       relevant for mixed macOS and iOS builds. */
   virtual bool UseEffectivePlatformName(cmMakefile*) const { return false; }

+ 2 - 0
Source/cmGlobalVisualStudioGenerator.h

@@ -101,6 +101,8 @@ public:
   /** Return true if building for Windows CE */
   virtual bool TargetsWindowsCE() const { return false; }
 
+  bool IsIncludeExternalMSProjectSupported() const override { return true; }
+
   class TargetSet : public std::set<cmGeneratorTarget const*>
   {
   };

+ 4 - 1
Source/cmIncludeExternalMSProjectCommand.cxx

@@ -3,6 +3,7 @@
 #include "cmIncludeExternalMSProjectCommand.h"
 
 #ifdef _WIN32
+#include "cmGlobalGenerator.h"
 #include "cmMakefile.h"
 #include "cmStateTypes.h"
 #include "cmSystemTools.h"
@@ -22,7 +23,9 @@ bool cmIncludeExternalMSProjectCommand::InitialPass(
   }
 // only compile this for win32 to avoid coverage errors
 #ifdef _WIN32
-  if (this->Makefile->GetDefinition("WIN32")) {
+  if (this->Makefile->GetDefinition("WIN32") ||
+      this->Makefile->GetGlobalGenerator()
+        ->IsIncludeExternalMSProjectSupported()) {
     enum Doing
     {
       DoingNone,