/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #ifndef cmGeneratorExpressionContext_h #define cmGeneratorExpressionContext_h #include "cmListFileCache.h" #include <map> #include <set> #include <string> class cmGeneratorTarget; class cmLocalGenerator; struct cmGeneratorExpressionContext { cmGeneratorExpressionContext(cmLocalGenerator* lg, std::string const& config, bool quiet, const cmGeneratorTarget* headTarget, cmGeneratorTarget const* currentTarget, bool evaluateForBuildsystem, cmListFileBacktrace const& backtrace, std::string const& language); cmListFileBacktrace Backtrace; std::set<cmGeneratorTarget*> DependTargets; std::set<cmGeneratorTarget const*> AllTargets; std::set<std::string> SeenTargetProperties; std::set<cmGeneratorTarget const*> SourceSensitiveTargets; std::map<cmGeneratorTarget const*, std::map<std::string, std::string> > MaxLanguageStandard; cmLocalGenerator* LG; std::string Config; std::string Language; // The target whose property is being evaluated. cmGeneratorTarget const* HeadTarget; // The dependent of HeadTarget which appears // directly or indirectly in the property. cmGeneratorTarget const* CurrentTarget; bool Quiet; bool HadError; bool HadContextSensitiveCondition; bool HadHeadSensitiveCondition; bool EvaluateForBuildsystem; }; #endif