/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #pragma once #include #include #include #include "cmJSONState.h" class cmInstrumentationQuery { public: enum Query { StaticSystemInformation, DynamicSystemInformation }; static const std::vector QueryString; enum Hook { PostGenerate, PreBuild, PostBuild, PreCMakeBuild, PostCMakeBuild, PostTest, PostInstall, Manual }; static const std::vector HookString; struct QueryJSONRoot { std::vector queries; std::vector hooks; std::vector callbacks; int version; }; cmInstrumentationQuery() = default; bool ReadJSON(const std::string& file, std::string& errorMessage, std::set& queries, std::set& hooks, std::vector& callbacks); QueryJSONRoot queryRoot; cmJSONState parseState; };