#pragma once #include #include #include #include class CMake { public: CMake(const boost::filesystem::path &path); boost::filesystem::path project_path; bool update_default_build(const boost::filesystem::path &default_build_path, bool force = false); bool update_debug_build(const boost::filesystem::path &debug_build_path, bool force = false); boost::filesystem::path get_executable(const boost::filesystem::path &build_path, const boost::filesystem::path &file_path); private: std::vector paths; struct Function { std::string name; std::list parameters; }; static void parse_file(const std::string &src, std::map> &variables, std::function &&on_function); // Cmake file API functions void set_file_api_queries(const boost::filesystem::path &build_path); std::vector get_executables(const boost::filesystem::path &build_path, const boost::filesystem::path &file_path); };