1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
9 #include "cmListFileCache.h"
11 class cmGeneratorTarget;
12 class cmLocalGenerator;
14 struct cmGeneratorExpressionContext
16 cmGeneratorExpressionContext(cmLocalGenerator* lg, std::string config,
17 bool quiet, const cmGeneratorTarget* headTarget,
18 cmGeneratorTarget const* currentTarget,
19 bool evaluateForBuildsystem,
20 cmListFileBacktrace backtrace,
21 std::string language);
23 cmListFileBacktrace Backtrace;
24 std::set<cmGeneratorTarget*> DependTargets;
25 std::set<cmGeneratorTarget const*> AllTargets;
26 std::set<std::string> SeenTargetProperties;
27 std::set<cmGeneratorTarget const*> SourceSensitiveTargets;
28 std::map<cmGeneratorTarget const*, std::map<std::string, std::string>>
33 // The target whose property is being evaluated.
34 cmGeneratorTarget const* HeadTarget;
35 // The dependent of HeadTarget which appears
36 // directly or indirectly in the property.
37 cmGeneratorTarget const* CurrentTarget;
39 bool HadError = false;
40 bool HadContextSensitiveCondition = false;
41 bool HadHeadSensitiveCondition = false;
42 bool HadLinkLanguageSensitiveCondition = false;
43 bool EvaluateForBuildsystem;