CMake Nightly Date Stamp
[kiteware-cmake.git] / Source / cmGeneratorExpressionContext.h
blob21e396141d69a413c661878e1110dfa08c5b3522
1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
3 #pragma once
5 #include <map>
6 #include <set>
7 #include <string>
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>>
29 MaxLanguageStandard;
30 cmLocalGenerator* LG;
31 std::string Config;
32 std::string Language;
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;
38 bool Quiet;
39 bool HadError = false;
40 bool HadContextSensitiveCondition = false;
41 bool HadHeadSensitiveCondition = false;
42 bool HadLinkLanguageSensitiveCondition = false;
43 bool EvaluateForBuildsystem;