]> git.tdb.fi Git - builder.git/blobdiff - source/builder.h
Move architecture information from Builder to class Architecture
[builder.git] / source / builder.h
index 879781df1cb7d989fa2f248b168c4a54f3644a80..270f8162d7af543acf1b6b694d0ba968f034963b 100644 (file)
@@ -14,8 +14,10 @@ Distributed under the LGPL
 #include <msp/core/application.h>
 #include <msp/datafile/loader.h>
 #include <msp/path/path.h>
+#include "architecture.h"
 #include "config.h"
 #include "misc.h"
+#include "problem.h"
 #include "target.h"
 
 class Analyzer;
@@ -34,16 +36,16 @@ public:
        bool     get_dry_run() const   { return dry_run; }
        bool     get_build_all() const { return build_all; }
        Package  *get_package(const std::string &);
-       SourcePackage *get_default_package() const { return default_pkg; }
+       SourcePackage *get_main_package() const { return main_pkg; }
        Target   *get_target(const std::string &) const;
        const TargetMap &get_targets() const { return targets; }
        Target   *get_header(const std::string &, const std::string &, const std::string &, const StringList &);
        Target   *get_library(const std::string &, const std::string &, const StringList &, LibMode);
        const Msp::Path::Path &get_cwd() const { return cwd; }
-       const std::string &get_arch_prefix(const std::string &) const;
-       std::string get_tool(const std::string &, const std::string &);
+       const Architecture &get_architecture(const std::string &) const;
        void     apply_profile_template(Config &, const std::string &) const;
        void     add_target(Target *);
+       void     problem(const std::string &, const std::string &);
        int      main();
        ~Builder();
 
@@ -57,7 +59,7 @@ private:
                Builder         &bld;
                Msp::Path::Path src;
 
-               void architecture(const std::string &, const std::string &);
+               void architecture(const std::string &);
                void binpkg(const std::string &);
                void profile(const std::string &);
                void package(const std::string &);
@@ -75,7 +77,6 @@ private:
 
        typedef std::list<Package *>               PackageList;
        typedef std::map<std::string, Package *>   PackageMap;
-       typedef std::map<std::string, StringMap>   ToolMap;
        typedef std::map<std::string, StringMap>   ProfileTemplateMap;
 
        StringList   cmdline_targets;
@@ -83,18 +84,17 @@ private:
        Msp::Path::Path cwd;
 
        PackageMap   packages;
-       PackageList  new_pkgs;
-       SourcePackage *default_pkg;
+       SourcePackage *main_pkg;
 
        TargetMap    targets;
        TargetList   new_tgts;
        TargetMap    includes;
        TargetMap    libraries;
 
-       ToolMap      tools;    //< arch, tool name -> program name
-       StringMap    archs;    //< arch -> prefix
+       ArchMap      archs;
        ProfileTemplateMap profile_tmpl;
 
+       ProblemList     problems;
        Analyzer        *analyzer;
        bool            build;
        unsigned        clean;