X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=Source%2FcmGeneratorExpressionDAGChecker.h;h=62a5cdf38bfb34d841f2a3995cb396ad57cd06b7;hb=297c63fa65327491a2b50e521b661c5835a19fe4;hp=ffc84f8fd191d5d77808d716f0c9e28d2b546679;hpb=ef8aa19c33e83ff019595fd7f8fdc29c35c336a3;p=platform%2Fupstream%2Fcmake.git diff --git a/Source/cmGeneratorExpressionDAGChecker.h b/Source/cmGeneratorExpressionDAGChecker.h index ffc84f8..62a5cdf 100644 --- a/Source/cmGeneratorExpressionDAGChecker.h +++ b/Source/cmGeneratorExpressionDAGChecker.h @@ -25,20 +25,33 @@ struct cmGeneratorExpressionDAGChecker const GeneratorExpressionContent *content, cmGeneratorExpressionDAGChecker *parent); - bool check() const; + enum Result { + DAG, + SELF_REFERENCE, + CYCLIC_REFERENCE, + ALREADY_SEEN + }; + + Result check() const; void reportError(cmGeneratorExpressionContext *context, const std::string &expr); + + bool EvaluatingLinkLibraries(); + bool EvaluatingIncludeDirectories() const; + bool EvaluatingCompileDefinitions() const; + private: - bool isDAG() const; + Result checkGraph() const; private: const cmGeneratorExpressionDAGChecker * const Parent; const std::string Target; const std::string Property; + std::map > Seen; const GeneratorExpressionContent * const Content; const cmListFileBacktrace Backtrace; - bool IsDAG; + Result CheckResult; }; #endif