aboutsummaryrefslogtreecommitdiff
path: root/build2/cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-08-04 12:45:08 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-08-04 12:45:08 +0200
commitafca05688dd09da5cc0cc23e72def813562e80db (patch)
tree46cfeb4ced950f128884873083d7a89b75a0015e /build2/cxx
parentde8e93420527598bbf2c96ef44f74e3856c65c3b (diff)
Implement sidebuilding of installed modules
Diffstat (limited to 'build2/cxx')
-rw-r--r--build2/cxx/init.cxx19
1 files changed, 12 insertions, 7 deletions
diff --git a/build2/cxx/init.cxx b/build2/cxx/init.cxx
index 6c8cbad..4ec2894 100644
--- a/build2/cxx/init.cxx
+++ b/build2/cxx/init.cxx
@@ -367,6 +367,8 @@ namespace build2
//
v.insert<string> ("cxx.preprocessed"),
+ nullptr, // cxx.features.symexport (set in init() below).
+
v.insert<string> ("cxx.std", variable_visibility::project),
v.insert<string> ("cxx.id"),
@@ -442,17 +444,20 @@ namespace build2
if (!cast_false<bool> (rs["cxx.config.loaded"]))
load_module (rs, rs, "cxx.config", loc, false, hints);
+ config_module& cm (*rs.modules.lookup<config_module> ("cxx.config"));
+
auto& vp (var_pool.rw (rs));
bool modules (cast<bool> (rs["cxx.features.modules"]));
- bool symexport (
- modules &&
- cast_false<bool> (
- rs[vp.insert<bool> ("cxx.features.symexport",
- variable_visibility::project)]));
-
- config_module& cm (*rs.modules.lookup<config_module> ("cxx.config"));
+ bool symexport (false);
+ if (modules)
+ {
+ auto& var (vp.insert<bool> ("cxx.features.symexport",
+ variable_visibility::project));
+ symexport = cast_false<bool> (rs[var]);
+ cm.x_symexport = &var;
+ }
cc::data d {
cm,