resolve cyclic dependency with zstd
[platform/upstream/cmake.git] / Source / cmGeneratorExpressionContext.h
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
4
5 #include <map>
6 #include <set>
7 #include <string>
8
9 #include "cmListFileCache.h"
10
11 class cmGeneratorTarget;
12 class cmLocalGenerator;
13
14 struct cmGeneratorExpressionContext
15 {
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);
22
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;
44 };