X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuilder.h;h=331c50ab9a57be2c92fb2ed91a4fab98c598d2b0;hb=d1f9551e05c9d341149eb490e05b1465d3d6b711;hp=9ea6677ecfebe8caf06625cbfff0ad4a9a9b43ce;hpb=84da3f6c94dbe7e36aaf088890fda5fcf3b3efb0;p=builder.git diff --git a/source/builder.h b/source/builder.h index 9ea6677..331c50a 100644 --- a/source/builder.h +++ b/source/builder.h @@ -1,7 +1,6 @@ #ifndef BUILDER_H_ #define BUILDER_H_ -#include #include #include #include @@ -45,14 +44,12 @@ private: }; private: - typedef std::map BuildTypeMap; - PackageManager package_manager; Architecture native_arch; - Architecture *current_arch; - BuildTypeMap build_types; - BuildType *build_type; + Architecture *current_arch = 0; + std::map build_types; + BuildType *build_type = 0; Toolchain toolchain; VirtualFileSystem vfs; BuildGraph build_graph; @@ -60,9 +57,9 @@ private: const Logger *logger; Msp::FS::Path prefix; - Msp::FS::Path tempdir; + Msp::FS::Path tempdir = "temp"; - Loader *top_loader; + Loader *top_loader = 0; public: Builder(); @@ -75,7 +72,7 @@ public: const Architecture &get_native_arch() const { return native_arch; } void set_build_type(const std::string &); std::vector get_build_types() const; - const BuildType &get_build_type() const { return *build_type; } + const BuildType &get_build_type() const; BuildGraph &get_build_graph() { return build_graph; } void set_prefix(const Msp::FS::Path &); void set_temp_directory(const Msp::FS::Path &); @@ -88,13 +85,16 @@ public: void set_logger(const Logger *); const Logger &get_logger() const { return *logger; } - std::list collect_problems() const; + std::vector collect_problems() const; /** Loads a build file. If opts is not null, it is used to configure any packages loaded from this file. If all is true, external packages are also configured. */ void load_build_file(const Msp::FS::Path &, const Config::InputOptions *opts = 0, bool all = false); + /** Saves package configuration and dependency caches. */ + void save_caches(); + /** Builds the goal targets. The build graph must be prepared first. */ int build(unsigned jobs = 1, bool dry_run = false, bool show_progress = false);