X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fbuilder.h;h=283b5fd3b949d4d454d29b451b23dc0a67f937ac;hb=7606161ee4a6fd13c2f5ddca413ba3582df66f03;hp=4359d4563f7214849b89ed6e4f3495e1565f36dc;hpb=d861af0938a9043270245f6973d4ddbdc94e75b4;p=builder.git diff --git a/source/builder.h b/source/builder.h index 4359d45..283b5fd 100644 --- a/source/builder.h +++ b/source/builder.h @@ -11,7 +11,6 @@ #include "buildtype.h" #include "config.h" #include "logger.h" -#include "misc.h" #include "packagemanager.h" #include "problem.h" #include "target.h" @@ -32,11 +31,8 @@ class Builder: public Msp::RegisteredApplication private: class Loader: public Msp::DataFile::ObjectLoader { - private: - Msp::FS::Path src; - public: - Loader(Builder &, const Msp::FS::Path &); + Loader(Builder &); private: void architecture(const std::string &); void binpkg(const std::string &); @@ -49,14 +45,15 @@ public: typedef std::map TargetMap; private: + typedef std::list NameList; typedef std::map BuildTypeMap; + typedef std::list ProblemList; - StringList cmdline_targets; + NameList cmdline_targets; Config::InputOptions cmdline_options; Msp::FS::Path cwd; PackageManager package_manager; - SourcePackage *main_pkg; TargetMap targets; @@ -77,7 +74,7 @@ private: bool show_progress; std::string build_file; unsigned jobs; - StringList what_if; + NameList what_if; bool conf_all; bool conf_only; bool build_all; @@ -93,7 +90,6 @@ public: ~Builder(); int main(); - bool get_dry_run() const { return dry_run; } PackageManager &get_package_manager() { return package_manager; } @@ -112,8 +108,8 @@ public: VirtualFileSystem &get_vfs() { return vfs; } const Logger &get_logger() const { return logger; } - /** Adds a target to both the target map and the new target queue. Called - from Target constructor. */ + /** Adds a target. It can later be retrieved by name. Called from Target + constructor. */ void add_target(Target *); /** Adds a target that is a primary build goal. Such targets will be added @@ -122,13 +118,17 @@ public: virtual target. */ void add_primary_target(Target &); + /** Adds a target that will be installed. A new InstalledFile target is + created and added as a dependency to the "install" virtual target. */ + void add_installed_target(Target &); + void problem(const std::string &, const std::string &); static void usage(const char *, const char *, bool); /** Loads a build file. Returns 0 on success or -1 if the file could not be opened. */ - int load_build_file(const Msp::FS::Path &); + void load_build_file(const Msp::FS::Path &); private: /** Prepares packages and targets for building. Returns true if everything