diff options
author | Stephen Kelly <steveire@gmail.com> | 2012-09-18 11:42:23 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2012-09-28 12:49:21 (GMT) |
commit | 7e807472d2b17d40c702ff91c7255eca04a64ebe (patch) | |
tree | 61dc894fc58d4ff8878947e2d50d4aea9618adfd /Source/cmGeneratorExpression.cxx | |
parent | 239ac841538be536e70cbddb2b04bef2b342a2e5 (diff) | |
download | CMake-7e807472d2b17d40c702ff91c7255eca04a64ebe.zip CMake-7e807472d2b17d40c702ff91c7255eca04a64ebe.tar.gz CMake-7e807472d2b17d40c702ff91c7255eca04a64ebe.tar.bz2 |
Add API to check that dependent target properties form a DAG.
Initially this will only be used to check for self-references, but
can be extended to check for cycles when chaining properties of other
targets.
Diffstat (limited to 'Source/cmGeneratorExpression.cxx')
-rw-r--r-- | Source/cmGeneratorExpression.cxx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Source/cmGeneratorExpression.cxx b/Source/cmGeneratorExpression.cxx index 55a1e3e..3f8e962 100644 --- a/Source/cmGeneratorExpression.cxx +++ b/Source/cmGeneratorExpression.cxx @@ -19,6 +19,7 @@ #include "cmGeneratorExpressionEvaluator.h" #include "cmGeneratorExpressionLexer.h" #include "cmGeneratorExpressionParser.h" +#include "cmGeneratorExpressionDAGChecker.h" //---------------------------------------------------------------------------- cmGeneratorExpression::cmGeneratorExpression( @@ -66,7 +67,8 @@ cmGeneratorExpression::~cmGeneratorExpression() //---------------------------------------------------------------------------- const char *cmCompiledGeneratorExpression::Evaluate( cmMakefile* mf, const char* config, bool quiet, - cmGeneratorTarget *target) const + cmGeneratorTarget *target, + cmGeneratorExpressionDAGChecker *dagChecker) const { if (!this->NeedsParsing) { @@ -90,7 +92,7 @@ const char *cmCompiledGeneratorExpression::Evaluate( for ( ; it != end; ++it) { - this->Output += (*it)->Evaluate(&context); + this->Output += (*it)->Evaluate(&context, dagChecker); if (context.HadError) { this->Output = ""; |