summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorBastien Schatt <bastien.schatt@magestik.fr>2017-04-03 18:47:32 +0200
committerBrad King <brad.king@kitware.com>2017-04-04 09:49:00 -0400
commit38fd5866c04d734ea78a4327de7a9ce08b6b8341 (patch)
tree7db989d944e012f2a2cd48eb8ceeaab356c73b47 /Source
parent53e9c2d2a31f33f5d72c2df5558ffa7213a54a04 (diff)
downloadcmake-38fd5866c04d734ea78a4327de7a9ce08b6b8341.tar.gz
Add GENERATOR_IS_MULTI_CONFIG global property
Fixes: #16768
Diffstat (limited to 'Source')
-rw-r--r--Source/cmGlobalGenerator.cxx1
-rw-r--r--Source/cmGlobalVisualStudioGenerator.cxx1
-rw-r--r--Source/cmGlobalXCodeGenerator.cxx2
-rw-r--r--Source/cmState.cxx14
-rw-r--r--Source/cmState.h4
5 files changed, 22 insertions, 0 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 851290ab0e..ce83e2e46a 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -96,6 +96,7 @@ cmGlobalGenerator::cmGlobalGenerator(cmake* cm)
this->ConfigureDoneCMP0026AndCMP0024 = false;
this->FirstTimeProgress = 0.0f;
+ cm->GetState()->SetIsGeneratorMultiConfig(false);
cm->GetState()->SetMinGWMake(false);
cm->GetState()->SetMSYSShell(false);
cm->GetState()->SetNMake(false);
diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx
index eb92b83e3c..6d16881ee6 100644
--- a/Source/cmGlobalVisualStudioGenerator.cxx
+++ b/Source/cmGlobalVisualStudioGenerator.cxx
@@ -20,6 +20,7 @@
cmGlobalVisualStudioGenerator::cmGlobalVisualStudioGenerator(cmake* cm)
: cmGlobalGenerator(cm)
{
+ cm->GetState()->SetIsGeneratorMultiConfig(true);
cm->GetState()->SetWindowsShell(true);
cm->GetState()->SetWindowsVSIDE(true);
}
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 416af1458c..febe95d73b 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -151,6 +151,8 @@ cmGlobalXCodeGenerator::cmGlobalXCodeGenerator(cmake* cm,
this->CurrentMakefile = 0;
this->CurrentLocalGenerator = 0;
this->XcodeBuildCommandInitialized = false;
+
+ cm->GetState()->SetIsGeneratorMultiConfig(true);
}
cmGlobalGeneratorFactory* cmGlobalXCodeGenerator::NewFactory()
diff --git a/Source/cmState.cxx b/Source/cmState.cxx
index 18d5ea1922..0f497313e4 100644
--- a/Source/cmState.cxx
+++ b/Source/cmState.cxx
@@ -20,6 +20,7 @@
cmState::cmState()
: IsInTryCompile(false)
+ , IsGeneratorMultiConfig(false)
, WindowsShell(false)
, WindowsVSIDE(false)
, WatcomWMake(false)
@@ -364,6 +365,16 @@ void cmState::SetIsInTryCompile(bool b)
this->IsInTryCompile = b;
}
+bool cmState::GetIsGeneratorMultiConfig() const
+{
+ return this->IsGeneratorMultiConfig;
+}
+
+void cmState::SetIsGeneratorMultiConfig(bool b)
+{
+ this->IsGeneratorMultiConfig = b;
+}
+
void cmState::RenameCommand(std::string const& oldName,
std::string const& newName)
{
@@ -481,6 +492,9 @@ const char* cmState::GetGlobalProperty(const std::string& prop)
} else if (prop == "IN_TRY_COMPILE") {
this->SetGlobalProperty("IN_TRY_COMPILE",
this->IsInTryCompile ? "1" : "0");
+ } else if (prop == "GENERATOR_IS_MULTI_CONFIG") {
+ this->SetGlobalProperty("GENERATOR_IS_MULTI_CONFIG",
+ this->IsGeneratorMultiConfig ? "1" : "0");
} else if (prop == "ENABLED_LANGUAGES") {
std::string langs;
langs = cmJoin(this->EnabledLanguages, ";");
diff --git a/Source/cmState.h b/Source/cmState.h
index 41ffcdcd2d..5659023cdc 100644
--- a/Source/cmState.h
+++ b/Source/cmState.h
@@ -116,6 +116,9 @@ public:
bool GetIsInTryCompile() const;
void SetIsInTryCompile(bool b);
+ bool GetIsGeneratorMultiConfig() const;
+ void SetIsGeneratorMultiConfig(bool b);
+
cmCommand* GetCommand(std::string const& name) const;
void AddCommand(cmCommand* command);
void RemoveUnscriptableCommands();
@@ -174,6 +177,7 @@ private:
std::string SourceDirectory;
std::string BinaryDirectory;
bool IsInTryCompile;
+ bool IsGeneratorMultiConfig;
bool WindowsShell;
bool WindowsVSIDE;
bool WatcomWMake;