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 <kwrobot@kitware.com>
Merge-request: !1525
This commit is contained in:
Brad King
2017-12-05 13:17:24 +00:00
committed by Kitware Robot
3 changed files with 10 additions and 1 deletions

View File

@@ -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; }

View File

@@ -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*>
{
};

View File

@@ -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,