mirror of https://gitlab.com/cppit/jucipp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.2 KiB
36 lines
1.2 KiB
#ifndef JUCI_CMAKE_H_ |
|
#define JUCI_CMAKE_H_ |
|
#include <boost/filesystem.hpp> |
|
#include <vector> |
|
#include <unordered_map> |
|
#include <unordered_set> |
|
|
|
class CMake { |
|
public: |
|
CMake(const boost::filesystem::path &path, bool find_project_root_path=false); |
|
boost::filesystem::path project_path; |
|
std::vector<boost::filesystem::path> paths; |
|
|
|
boost::filesystem::path get_default_build_path(); |
|
boost::filesystem::path get_debug_build_path(); |
|
bool create_default_build(bool force=false); |
|
bool create_debug_build(); |
|
|
|
boost::filesystem::path get_executable(const boost::filesystem::path &file_path); |
|
|
|
std::vector<std::pair<boost::filesystem::path, std::vector<std::string> > > get_functions_parameters(const std::string &name); |
|
private: |
|
std::vector<std::string> files; |
|
std::unordered_map<std::string, std::string> variables; |
|
void read_files(); |
|
void remove_tabs(); |
|
void remove_comments(); |
|
void remove_newlines_inside_parentheses(); |
|
void find_variables(); |
|
void parse_variable_parameters(std::string &data); |
|
void parse(); |
|
std::vector<std::string> get_function_parameters(std::string &data); |
|
bool parsed=false; |
|
static std::unordered_set<std::string> debug_build_needed; |
|
}; |
|
#endif //JUCI_CMAKE_H_
|
|
|