cmGeneratorExpressionContext.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #ifndef cmGeneratorExpressionContext_h
  4. #define cmGeneratorExpressionContext_h
  5. #include <map>
  6. #include <set>
  7. #include <string>
  8. #include "cmListFileCache.h"
  9. class cmGeneratorTarget;
  10. class cmLocalGenerator;
  11. struct cmGeneratorExpressionContext
  12. {
  13. cmGeneratorExpressionContext(cmLocalGenerator* lg, std::string config,
  14. bool quiet, const cmGeneratorTarget* headTarget,
  15. cmGeneratorTarget const* currentTarget,
  16. bool evaluateForBuildsystem,
  17. cmListFileBacktrace backtrace,
  18. std::string language);
  19. cmListFileBacktrace Backtrace;
  20. std::set<cmGeneratorTarget*> DependTargets;
  21. std::set<cmGeneratorTarget const*> AllTargets;
  22. std::set<std::string> SeenTargetProperties;
  23. std::set<cmGeneratorTarget const*> SourceSensitiveTargets;
  24. std::map<cmGeneratorTarget const*, std::map<std::string, std::string>>
  25. MaxLanguageStandard;
  26. cmLocalGenerator* LG;
  27. std::string Config;
  28. std::string Language;
  29. // The target whose property is being evaluated.
  30. cmGeneratorTarget const* HeadTarget;
  31. // The dependent of HeadTarget which appears
  32. // directly or indirectly in the property.
  33. cmGeneratorTarget const* CurrentTarget;
  34. bool Quiet;
  35. bool HadError;
  36. bool HadContextSensitiveCondition;
  37. bool HadHeadSensitiveCondition;
  38. bool HadLinkLanguageSensitiveCondition;
  39. bool EvaluateForBuildsystem;
  40. };
  41. #endif