diff options
Diffstat (limited to 'Builder.h')
-rw-r--r-- | Builder.h | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -1,6 +1,7 @@ #pragma once #include <filesystem> +#include <string> #include <unordered_map> #include <unordered_set> #include <vector> @@ -13,14 +14,17 @@ class Builder { public: - Builder(const boost::property_tree::ptree& ptree); + Builder(const boost::property_tree::ptree& ptree, const std::string& target); void build(); + void run_tests(); + void clean() const; private: std::unordered_map<std::filesystem::path, std::vector<std::filesystem::path>> get_dependencies(const boost::property_tree::ptree& ptree) const; std::vector<std::filesystem::path> dependencies_of(const std::filesystem::path& p) const; + std::vector<std::filesystem::path> include_paths_of(const std::filesystem::path& p) const; std::vector<std::string> link_libs_of(const std::filesystem::path& p) const; bool is_outdated(const std::filesystem::path& p) const; bool is_outdated(const std::filesystem::path& p, const std::vector<std::filesystem::path> &dependencies) const; @@ -29,12 +33,14 @@ private: void build_file(const std::filesystem::path& p); void build_filelist(); - void cleanup(); + void cleanup_buildlist(); const boost::property_tree::ptree _ptree; + std::string _target; std::vector<std::filesystem::path> _all_targets; std::vector<std::filesystem::path> _all_objects; std::unordered_map<std::filesystem::path, std::vector<std::filesystem::path>> _dependencies; + std::unordered_map<std::filesystem::path, std::vector<std::filesystem::path>> _include_paths; std::unordered_map<std::filesystem::path, std::vector<std::string>> _link_libs; LanguageSettings _lang; |