diff options
author | Stephen Kelly <steveire@gmail.com> | 2015-03-04 20:46:42 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2015-03-09 19:49:16 (GMT) |
commit | 0b945ea9a6a38d1b3ee27cc32afb4268bd571600 (patch) | |
tree | 79411aba297b00a76587c9bd855e3a9e5afa3e10 /Source/cmGeneratorExpressionEvaluator.cxx | |
parent | 5c559f11137dcb14113a3c5df99ff896c65c7596 (diff) | |
download | CMake-0b945ea9a6a38d1b3ee27cc32afb4268bd571600.zip CMake-0b945ea9a6a38d1b3ee27cc32afb4268bd571600.tar.gz CMake-0b945ea9a6a38d1b3ee27cc32afb4268bd571600.tar.bz2 |
Genex: Allow COMPILE_LANGUAGE when processing compile definitions.
Issue an error if this is encountered by an IDE generator.
Diffstat (limited to 'Source/cmGeneratorExpressionEvaluator.cxx')
-rw-r--r-- | Source/cmGeneratorExpressionEvaluator.cxx | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx index 6a9f251..3ec8595 100644 --- a/Source/cmGeneratorExpressionEvaluator.cxx +++ b/Source/cmGeneratorExpressionEvaluator.cxx @@ -817,7 +817,7 @@ static const struct CompileLanguageNode : public cmGeneratorExpressionNode std::string Evaluate(const std::vector<std::string> ¶meters, cmGeneratorExpressionContext *context, const GeneratorExpressionContent *content, - cmGeneratorExpressionDAGChecker *) const + cmGeneratorExpressionDAGChecker *dagChecker) const { if(context->Language.empty()) { @@ -849,12 +849,21 @@ static const struct CompileLanguageNode : public cmGeneratorExpressionNode "generators."); return std::string(); } + else if (genName.find("Xcode") != std::string::npos) + { + if (dagChecker && dagChecker->EvaluatingCompileDefinitions()) + { + reportError(context, content->GetOriginalExpression(), + "$<COMPILE_LANGUAGE:...> may only be used with COMPILE_OPTIONS " + "with the Xcode generator."); + return std::string(); + } + } else { if(genName.find("Makefiles") == std::string::npos && genName.find("Ninja") == std::string::npos && - genName.find("Watcom WMake") == std::string::npos && - genName.find("Xcode") == std::string::npos) + genName.find("Watcom WMake") == std::string::npos) { reportError(context, content->GetOriginalExpression(), "$<COMPILE_LANGUAGE:...> not supported for this generator."); |