cmGeneratorExpressionContext.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. #include <map>
  5. #include <set>
  6. #include <string>
  7. #include "cmListFileCache.h"
  8. class cmGeneratorTarget;
  9. class cmLocalGenerator;
  10. struct cmGeneratorExpressionContext
  11. {
  12. cmGeneratorExpressionContext(cmLocalGenerator* lg, std::string config,
  13. bool quiet, const cmGeneratorTarget* headTarget,
  14. cmGeneratorTarget const* currentTarget,
  15. bool evaluateForBuildsystem,
  16. cmListFileBacktrace backtrace,
  17. std::string language);
  18. cmListFileBacktrace Backtrace;
  19. std::set<cmGeneratorTarget*> DependTargets;
  20. std::set<cmGeneratorTarget const*> AllTargets;
  21. std::set<std::string> SeenTargetProperties;
  22. std::set<cmGeneratorTarget const*> SourceSensitiveTargets;
  23. std::map<cmGeneratorTarget const*, std::map<std::string, std::string>>
  24. MaxLanguageStandard;
  25. cmLocalGenerator* LG;
  26. std::string Config;
  27. std::string Language;
  28. // The target whose property is being evaluated.
  29. cmGeneratorTarget const* HeadTarget;
  30. // The dependent of HeadTarget which appears
  31. // directly or indirectly in the property.
  32. cmGeneratorTarget const* CurrentTarget;
  33. bool Quiet;
  34. bool HadError = false;
  35. bool HadContextSensitiveCondition = false;
  36. bool HadHeadSensitiveCondition = false;
  37. bool HadLinkLanguageSensitiveCondition = false;
  38. bool EvaluateForBuildsystem;
  39. };