cmInstrumentationQuery.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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 <set>
  5. #include <string>
  6. #include <vector>
  7. #include "cmJSONState.h"
  8. class cmInstrumentationQuery
  9. {
  10. public:
  11. enum Query
  12. {
  13. StaticSystemInformation,
  14. DynamicSystemInformation
  15. };
  16. static const std::vector<std::string> QueryString;
  17. enum Hook
  18. {
  19. PostGenerate,
  20. PreBuild,
  21. PostBuild,
  22. PreCMakeBuild,
  23. PostCMakeBuild,
  24. PostTest,
  25. PostInstall,
  26. Manual
  27. };
  28. static const std::vector<std::string> HookString;
  29. struct QueryJSONRoot
  30. {
  31. std::vector<cmInstrumentationQuery::Query> queries;
  32. std::vector<cmInstrumentationQuery::Hook> hooks;
  33. std::vector<std::string> callbacks;
  34. int version;
  35. };
  36. cmInstrumentationQuery() = default;
  37. bool ReadJSON(const std::string& file, std::string& errorMessage,
  38. std::set<Query>& queries, std::set<Hook>& hooks,
  39. std::vector<std::string>& callbacks);
  40. QueryJSONRoot queryRoot;
  41. cmJSONState parseState;
  42. };