diff options
author | Marc Chevrier <marc.chevrier@gmail.com> | 2019-02-12 15:25:56 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-02-13 13:37:02 (GMT) |
commit | e429e9af4259f924f4f8329f9f994e2f6a6e824a (patch) | |
tree | 15c44e1fd3a6c3cb7de5a70a2f66fde96833c6d2 /Source | |
parent | 6f23321d405930241fa431cfda7650f2993f0c19 (diff) | |
download | CMake-e429e9af4259f924f4f8329f9f994e2f6a6e824a.zip CMake-e429e9af4259f924f4f8329f9f994e2f6a6e824a.tar.gz CMake-e429e9af4259f924f4f8329f9f994e2f6a6e824a.tar.bz2 |
genex: Fix erroneous handling of recursion for $<GENEX_EVAL:>
Fixes: #18894
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmGeneratorExpressionDAGChecker.cxx | 10 | ||||
-rw-r--r-- | Source/cmGeneratorExpressionNode.cxx | 4 |
2 files changed, 4 insertions, 10 deletions
diff --git a/Source/cmGeneratorExpressionDAGChecker.cxx b/Source/cmGeneratorExpressionDAGChecker.cxx index 0f26e70..728f2a4 100644 --- a/Source/cmGeneratorExpressionDAGChecker.cxx +++ b/Source/cmGeneratorExpressionDAGChecker.cxx @@ -157,14 +157,8 @@ bool cmGeneratorExpressionDAGChecker::GetTransitivePropertiesOnly() bool cmGeneratorExpressionDAGChecker::EvaluatingGenexExpression() { - const cmGeneratorExpressionDAGChecker* top = this; - const cmGeneratorExpressionDAGChecker* parent = this->Parent; - while (parent) { - top = parent; - parent = parent->Parent; - } - - return top->Property == "TARGET_GENEX_EVAL" || top->Property == "GENEX_EVAL"; + return this->Property.find("TARGET_GENEX_EVAL:") == 0 || + this->Property.find("GENEX_EVAL:", 0) == 0; } bool cmGeneratorExpressionDAGChecker::EvaluatingPICExpression() diff --git a/Source/cmGeneratorExpressionNode.cxx b/Source/cmGeneratorExpressionNode.cxx index aac188e..70c80c9 100644 --- a/Source/cmGeneratorExpressionNode.cxx +++ b/Source/cmGeneratorExpressionNode.cxx @@ -404,8 +404,8 @@ protected: { if (context->HeadTarget) { cmGeneratorExpressionDAGChecker dagChecker( - context->Backtrace, context->HeadTarget, genexOperator, content, - dagCheckerParent); + context->Backtrace, context->HeadTarget, + genexOperator + ":" + expression, content, dagCheckerParent); switch (dagChecker.Check()) { case cmGeneratorExpressionDAGChecker::SELF_REFERENCE: case cmGeneratorExpressionDAGChecker::CYCLIC_REFERENCE: { |