#include <msp/datafile/loader.h>
#include <msp/fs/path.h>
#include "architecture.h"
+#include "buildgraph.h"
#include "buildtype.h"
#include "config.h"
#include "logger.h"
-#include "misc.h"
#include "packagemanager.h"
#include "problem.h"
#include "target.h"
void package(const std::string &);
};
-public:
- typedef std::map<std::string, Target *> TargetMap;
-
private:
+ typedef std::list<std::string> NameList;
typedef std::map<std::string, BuildType> BuildTypeMap;
+ typedef std::list<Problem> ProblemList;
- StringList cmdline_targets;
+ NameList cmdline_targets;
Config::InputOptions cmdline_options;
Msp::FS::Path cwd;
PackageManager package_manager;
- SourcePackage *main_pkg;
-
- TargetMap targets;
Architecture native_arch;
Architecture *current_arch;
BuildType *build_type;
Toolchain toolchain;
VirtualFileSystem vfs;
+ BuildGraph build_graph;
Logger logger;
ProblemList problems;
bool show_progress;
std::string build_file;
unsigned jobs;
- StringList what_if;
+ NameList what_if;
bool conf_all;
bool conf_only;
bool build_all;
PackageManager &get_package_manager() { return package_manager; }
- /** Looks up a target by name. Returns 0 if no such target exists. */
- Target *get_target(const std::string &) const;
-
- const TargetMap &get_targets() const { return targets; }
-
- const Msp::FS::Path &get_work_directory() const { return cwd; }
const Architecture &get_current_arch() const { return *current_arch; }
const Architecture &get_native_arch() const { return native_arch; }
+ BuildGraph &get_build_graph() { return build_graph; }
const Msp::FS::Path &get_prefix() const { return prefix; }
const Msp::FS::Path &get_temp_directory() const { return tempdir; }
VirtualFileSystem &get_vfs() { return vfs; }
const Logger &get_logger() const { return logger; }
- /** 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
- as dependencies of the "world" virtual target. If the target belongs to a
- default component of the main package, it's also added to the "default"
- virtual target. */
- void add_primary_target(Target &);
-
void problem(const std::string &, const std::string &);
static void usage(const char *, const char *, bool);