aboutsummaryrefslogtreecommitdiff
path: root/build2/b.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-08-09 11:31:53 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-08-12 17:04:22 +0200
commit9fa5f73d00905568e8979d0c93ec4a8f645c81d5 (patch)
treef2bf937fa256c0ef2c9bbe05d3655d1985719405 /build2/b.cxx
parenta1b2319ff2ddc8a6f139ee364cabe236ca62e23e (diff)
Implement support for C compilation
We now have two new modules: cc (c-common) and c.
Diffstat (limited to 'build2/b.cxx')
-rw-r--r--build2/b.cxx46
1 files changed, 33 insertions, 13 deletions
diff --git a/build2/b.cxx b/build2/b.cxx
index a14b998..5167cf6 100644
--- a/build2/b.cxx
+++ b/build2/b.cxx
@@ -41,6 +41,8 @@ using namespace std;
#include <build2/config/module>
#include <build2/dist/module>
#include <build2/bin/module>
+#include <build2/c/init>
+#include <build2/cc/init>
#include <build2/cxx/module>
#include <build2/cli/module>
#include <build2/test/module>
@@ -183,19 +185,37 @@ main (int argc, char* argv[])
// Register builtin modules.
//
- builtin_modules["config"] = module_functions {&config::boot,
- &config::init};
- builtin_modules["dist"] = module_functions {&dist::boot, &dist::init};
- builtin_modules["test"] = module_functions {&test::boot, &test::init};
- builtin_modules["install"] = module_functions {&install::boot,
- &install::init};
-
- builtin_modules["bin"] = module_functions {nullptr, &bin::init};
- builtin_modules["bin.ar"] = module_functions {nullptr, &bin::ar_init};
- builtin_modules["bin.ld"] = module_functions {nullptr, &bin::ld_init};
- builtin_modules["bin.rc"] = module_functions {nullptr, &bin::rc_init};
- builtin_modules["cxx"] = module_functions {nullptr, &cxx::init};
- builtin_modules["cli"] = module_functions {nullptr, &cli::init};
+ {
+ using mf = module_functions;
+ auto& bm (builtin_modules);
+
+ bm["config"] = mf {&config::boot, &config::init};
+ bm["dist"] = mf {&dist::boot, &dist::init};
+ bm["test"] = mf {&test::boot, &test::init};
+ bm["install"] = mf {&install::boot, &install::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.vars"] = mf {nullptr, &cc::vars_init};
+ bm["cc.config"] = mf {nullptr, &cc::config_init};
+ bm["cc.core"] = mf {nullptr, &cc::core_init};
+ bm["cc"] = mf {nullptr, &cc::init};
+
+ bm["c.config"] = mf {nullptr, &c::config_init};
+ bm["c"] = mf {nullptr, &c::init};
+
+ bm["cxx.config"] = mf {nullptr, &cxx::config_init};
+ bm["cxx"] = mf {nullptr, &cxx::init};
+
+ bm["cli"] = mf {nullptr, &cli::init};
+ }
// Figure out work and home directories.
//