diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2019-07-08 14:55:35 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2019-07-24 13:53:25 +0200 |
commit | 83bb02cada0b894d9134cc5489999e0f0fe8bd7c (patch) | |
tree | 1dedff27ce2b7d54bd6b0875c9125f4dafde2e80 /build2/b.cxx | |
parent | 1ba934bb973c234b68751ee5866365c14da4e795 (diff) |
Move in build system module to separate library
Diffstat (limited to 'build2/b.cxx')
-rw-r--r-- | build2/b.cxx | 94 |
1 files changed, 50 insertions, 44 deletions
diff --git a/build2/b.cxx b/build2/b.cxx index a76a8e4..907784b 100644 --- a/build2/b.cxx +++ b/build2/b.cxx @@ -42,20 +42,18 @@ #include <libbuild2/parser.hxx> +#include <build2/b-options.hxx> + +// Build system modules. +// #include <libbuild2/dist/init.hxx> #include <libbuild2/test/init.hxx> #include <libbuild2/config/init.hxx> #include <libbuild2/install/init.hxx> -#include <build2/b-options.hxx> - -using namespace butl; -using namespace std; - +#include <libbuild2/in/init.hxx> #include <build2/version/init.hxx> -#include <build2/in/init.hxx> - #include <build2/bin/init.hxx> #include <build2/c/init.hxx> #include <build2/cc/init.hxx> @@ -66,6 +64,9 @@ using namespace std; # include <build2/bash/init.hxx> #endif +using namespace butl; +using namespace std; + namespace build2 { static options ops; @@ -437,46 +438,51 @@ main (int argc, char* argv[]) using mf = module_functions; auto& bm (builtin_modules); - bm["config"] = config::build2_config_load (); - bm["dist"] = dist::build2_dist_load (); - bm["test"] = test::build2_test_load (); - bm["install"] = install::build2_install_load (); - - bm["version"] = mf {&version::boot, &version::init}; - - bm["in.base"] = mf {nullptr, &in::base_init}; - bm["in"] = mf {nullptr, &in::init}; - - bm["bin.vars"] = mf {nullptr, &bin::vars_init}; - bm["bin.config"] = mf {nullptr, &bin::config_init}; - bm["bin"] = mf {nullptr, &bin::init}; - bm["bin.ar.config"] = mf {nullptr, &bin::ar_config_init}; - bm["bin.ar"] = mf {nullptr, &bin::ar_init}; - bm["bin.ld.config"] = mf {nullptr, &bin::ld_config_init}; - bm["bin.ld"] = mf {nullptr, &bin::ld_init}; - bm["bin.rc.config"] = mf {nullptr, &bin::rc_config_init}; - bm["bin.rc"] = mf {nullptr, &bin::rc_init}; - - bm["cc.core.vars"] = mf {nullptr, &cc::core_vars_init}; - bm["cc.core.guess"] = mf {nullptr, &cc::core_guess_init}; - bm["cc.core.config"] = mf {nullptr, &cc::core_config_init}; - bm["cc.core"] = mf {nullptr, &cc::core_init}; - bm["cc.config"] = mf {nullptr, &cc::config_init}; - bm["cc"] = mf {nullptr, &cc::init}; - - bm["c.guess"] = mf {nullptr, &c::guess_init}; - bm["c.config"] = mf {nullptr, &c::config_init}; - bm["c"] = mf {nullptr, &c::init}; - - bm["cxx.guess"] = mf {nullptr, &cxx::guess_init}; - bm["cxx.config"] = mf {nullptr, &cxx::config_init}; - bm["cxx"] = mf {nullptr, &cxx::init}; + auto reg = [] (module_load_function* lf) + { + for (const module_functions* i (lf ()); i->name != nullptr; ++i) + builtin_modules[i->name] = *i; + }; + + reg (&config::build2_config_load); + reg (&dist::build2_dist_load); + reg (&test::build2_test_load); + reg (&install::build2_install_load); + + bm["version"] = mf {"version", &version::boot, &version::init}; + + reg (&in::build2_in_load); + + bm["bin.vars"] = mf {"bin.vars", nullptr, &bin::vars_init}; + bm["bin.config"] = mf {"bin.config", nullptr, &bin::config_init}; + bm["bin"] = mf {"bin", nullptr, &bin::init}; + bm["bin.ar.config"] = mf {"bin.ar.config", nullptr, &bin::ar_config_init}; + bm["bin.ar"] = mf {"bin.ar", nullptr, &bin::ar_init}; + bm["bin.ld.config"] = mf {"bin.ld.config", nullptr, &bin::ld_config_init}; + bm["bin.ld"] = mf {"bin.ld", nullptr, &bin::ld_init}; + bm["bin.rc.config"] = mf {"bin.rc.config", nullptr, &bin::rc_config_init}; + bm["bin.rc"] = mf {"bin.rc", nullptr, &bin::rc_init}; + + bm["cc.core.vars"] = mf {"cc.core.vars", nullptr, &cc::core_vars_init}; + bm["cc.core.guess"] = mf {"cc.core.guess", nullptr, &cc::core_guess_init}; + bm["cc.core.config"] = mf {"cc.core.config", nullptr, &cc::core_config_init}; + bm["cc.core"] = mf {"cc.core", nullptr, &cc::core_init}; + bm["cc.config"] = mf {"cc.config", nullptr, &cc::config_init}; + bm["cc"] = mf {"cc", nullptr, &cc::init}; + + bm["c.guess"] = mf {"c.guess", nullptr, &c::guess_init}; + bm["c.config"] = mf {"c.config", nullptr, &c::config_init}; + bm["c"] = mf {"c", nullptr, &c::init}; + + bm["cxx.guess"] = mf {"cxx.guess", nullptr, &cxx::guess_init}; + bm["cxx.config"] = mf {"cxx.config", nullptr, &cxx::config_init}; + bm["cxx"] = mf {"cxx", nullptr, &cxx::init}; #ifndef BUILD2_BOOTSTRAP - bm["cli.config"] = mf {nullptr, &cli::config_init}; - bm["cli"] = mf {nullptr, &cli::init}; + bm["cli.config"] = mf {"cli.config", nullptr, &cli::config_init}; + bm["cli"] = mf {"cli", nullptr, &cli::init}; - bm["bash"] = mf {nullptr, &bash::init}; + bm["bash"] = mf {"bash", nullptr, &bash::init}; #endif } |