- typedef std::list<Package *> PackageList;
- typedef std::map<std::string, Package *> PackageMap;
- typedef std::map<std::string, Target *> TargetMap;
- typedef std::map<std::string, StringMap> ToolMap;
- typedef std::map<std::string, StringMap> ProfileTemplateMap;
-
- StringList cmdline_targets;
- StringMap cmdline_options;
- Msp::Path::Path cwd;
-
- PackageMap packages;
- PackageList new_pkgs;
- Package *default_pkg;
-
- TargetMap targets;
- TargetList new_tgts;
- TargetMap includes;
- TargetMap libraries;
-
- ToolMap tools; //< arch, tool name -> program name
- StringMap archs; //< arch -> prefix
- ProfileTemplateMap profile_tmpl;
-
- Analyzer *analyzer;
- bool build;
- unsigned clean;
- bool dry_run;
- bool help;
- unsigned verbose;
- bool chrome;
- std::string build_file;
- unsigned jobs;
- StringList what_if;
- bool conf_all;
- bool conf_only;
- bool build_all;
- bool create_makefile;
-
- int load_build_file(const Msp::Path::Path &);
- int create_targets();
- Target *get_header(const Msp::Path::Path &);
- Target *get_library(const std::string &, const std::string &, const Msp::Path::Path &, LibMode);
- void update_hash(std::string &, const std::string &);
- int do_build();
- int do_clean();
- int do_create_makefile();
- void package_help();
-
- static Msp::Application::RegApp<Builder> reg;