#pragma once #include #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 /// Returns true if file api query file was created, false otherwise including if the file already exists bool create_file_api_query(const boost::filesystem::path &build_path); boost::optional get_executable_from_file_api(const boost::filesystem::path &build_path, const boost::filesystem::path &file_path); };