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.
This commit is contained in:
Stephen Kelly
2012-09-18 13:42:23 +02:00
committed by Brad King
parent 239ac84153
commit 7e807472d2
8 changed files with 204 additions and 26 deletions

View File

@@ -25,6 +25,7 @@ class cmMakefile;
class cmListFileBacktrace;
struct cmGeneratorExpressionEvaluator;
struct cmGeneratorExpressionDAGChecker;
class cmCompiledGeneratorExpression;
@@ -60,7 +61,8 @@ class cmCompiledGeneratorExpression
public:
const char* Evaluate(cmMakefile* mf, const char* config,
bool quiet = false,
cmGeneratorTarget *target = 0) const;
cmGeneratorTarget *target = 0,
cmGeneratorExpressionDAGChecker *dagChecker = 0) const;
/** Get set of targets found during evaluations. */
std::set<cmTarget*> const& GetTargets() const