diff options
author | Stephen Kelly <steveire@gmail.com> | 2014-02-13 19:52:21 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2014-04-02 21:14:02 (GMT) |
commit | 3676fb49634efd01755aa5c12d58e2f2bf20d09f (patch) | |
tree | 9fa46bbd284083457ce0133ff27d03fd710e9c76 /Source/cmGeneratorExpressionDAGChecker.cxx | |
parent | e6971df6ab647031ba9689c9afbbde78cc62e35f (diff) | |
download | CMake-3676fb49634efd01755aa5c12d58e2f2bf20d09f.zip CMake-3676fb49634efd01755aa5c12d58e2f2bf20d09f.tar.gz CMake-3676fb49634efd01755aa5c12d58e2f2bf20d09f.tar.bz2 |
cmTarget: Allow transitive evaluation of SOURCES property.
Extend the cmGeneratorExpressionDAGChecker with an interface
returning the name of the top target. Use that to determine
when there is a DAG violation, as required by the RunCMake.Languages
tests.
Diffstat (limited to 'Source/cmGeneratorExpressionDAGChecker.cxx')
-rw-r--r-- | Source/cmGeneratorExpressionDAGChecker.cxx | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Source/cmGeneratorExpressionDAGChecker.cxx b/Source/cmGeneratorExpressionDAGChecker.cxx index 07efba9..7f8e694 100644 --- a/Source/cmGeneratorExpressionDAGChecker.cxx +++ b/Source/cmGeneratorExpressionDAGChecker.cxx @@ -179,6 +179,18 @@ bool cmGeneratorExpressionDAGChecker::EvaluatingLinkLibraries(const char *tgt) || strcmp(prop, "INTERFACE_LINK_LIBRARIES") == 0; } +std::string cmGeneratorExpressionDAGChecker::TopTarget() const +{ + const cmGeneratorExpressionDAGChecker *top = this; + const cmGeneratorExpressionDAGChecker *parent = this->Parent; + while (parent) + { + top = parent; + parent = parent->Parent; + } + return top->Target; +} + enum TransitiveProperty { #define DEFINE_ENUM_ENTRY(NAME) NAME, CM_FOR_EACH_TRANSITIVE_PROPERTY_NAME(DEFINE_ENUM_ENTRY) |