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