summaryrefslogtreecommitdiffhomepage
path: root/Builder.h
diff options
context:
space:
mode:
Diffstat (limited to 'Builder.h')
-rw-r--r--Builder.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/Builder.h b/Builder.h
index 52fc17a..3169c3b 100644
--- a/Builder.h
+++ b/Builder.h
@@ -7,6 +7,7 @@
#include <boost/property_tree/ptree.hpp>
+#include "LanguageSettings.h"
#include "ProcessRunner.h"
class Builder
@@ -18,8 +19,12 @@ public:
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::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;
+ std::vector<std::filesystem::path> make_depfile_from(const std::filesystem::path& p) const;
void build_file(const std::filesystem::path& p);
void build_filelist();
@@ -30,7 +35,9 @@ private:
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::string>> _link_libs;
+ LanguageSettings _lang;
ProcessRunner _runner;
std::unordered_set<std::filesystem::path> _buildlist; // build done