cmInstrumentationQuery.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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 std::vector<std::string> const QueryString;
  17. enum Hook
  18. {
  19. PostGenerate,
  20. PreBuild,
  21. PostBuild,
  22. PreCMakeBuild,
  23. PostCMakeBuild,
  24. PostTest,
  25. PostInstall,
  26. PrepareForCDash,
  27. Manual
  28. };
  29. static std::vector<std::string> const HookString;
  30. struct QueryJSONRoot
  31. {
  32. std::vector<cmInstrumentationQuery::Query> queries;
  33. std::vector<cmInstrumentationQuery::Hook> hooks;
  34. std::vector<std::string> callbacks;
  35. int version;
  36. };
  37. cmInstrumentationQuery() = default;
  38. bool ReadJSON(std::string const& file, std::string& errorMessage,
  39. std::set<Query>& queries, std::set<Hook>& hooks,
  40. std::vector<std::string>& callbacks);
  41. QueryJSONRoot queryRoot;
  42. cmJSONState parseState;
  43. };