X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuilder.h;h=d12cf003a68d7fc4d994b47b9dcb8f611f1622ff;hb=HEAD;hp=5d62a9a1ec759b1d6d2e06eb91aa363cfcb617a6;hpb=aa053d637e8259755af7d2e4b510a242f4d29c7b;p=builder.git diff --git a/source/builder.h b/source/builder.h deleted file mode 100644 index 5d62a9a..0000000 --- a/source/builder.h +++ /dev/null @@ -1,108 +0,0 @@ -#ifndef BUILDER_H_ -#define BUILDER_H_ - -#include -#include -#include -#include -#include "architecture.h" -#include "buildgraph.h" -#include "buildtype.h" -#include "config.h" -#include "logger.h" -#include "packagemanager.h" -#include "target.h" -#include "toolchain.h" -#include "virtualfilesystem.h" - -class FileTarget; -class Package; -class SourcePackage; - -/** -This class ties everything else together. It also contains code for loading -build files and supervising the build process. -*/ -class Builder -{ -private: - class Loader: public Msp::DataFile::ObjectLoader - { - private: - const Config::InputOptions *options; - bool conf_all; - - public: - Loader(Builder &, const Config::InputOptions * = 0, bool = false); - ~Loader(); - - private: - void architecture(const std::string &); - void binpkg(const std::string &); - void build_type(const std::string &); - void package(const std::string &); - }; - -private: - PackageManager package_manager; - - Architecture native_arch; - Architecture *current_arch; - std::map build_types; - BuildType *build_type; - Toolchain toolchain; - VirtualFileSystem vfs; - BuildGraph build_graph; - Logger default_logger; - const Logger *logger; - - Msp::FS::Path prefix; - Msp::FS::Path tempdir; - - Loader *top_loader; - -public: - Builder(); - ~Builder(); - - PackageManager &get_package_manager() { return package_manager; } - - void set_architecture(const std::string &); - const Architecture &get_current_arch() const { return *current_arch; } - 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; - BuildGraph &get_build_graph() { return build_graph; } - void set_prefix(const Msp::FS::Path &); - void set_temp_directory(const Msp::FS::Path &); - const Msp::FS::Path &get_prefix() const { return prefix; } - const Msp::FS::Path &get_temp_directory() const { return tempdir; } - - void add_default_tools(); - const Toolchain &get_toolchain() const { return toolchain; } - VirtualFileSystem &get_vfs() { return vfs; } - void set_logger(const Logger *); - const Logger &get_logger() const { return *logger; } - - 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); - - /** Cleans buildable targets. If all is true, cleans all packages. - Otherwise cleans only the default package. */ - int clean(bool all = false, bool dry_run = false); - - int do_create_makefile(); -}; - -#endif