diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-04-11 07:57:19 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-04-11 07:57:19 +0200 |
commit | 0342dc2fcdd78ef28a4e59d84193a3807068d726 (patch) | |
tree | e750c3062d6ff54f0d409fe1a25984b7e78592c8 /build2/cxx/module.cxx | |
parent | 5f7c3f923de106f9d204a8f3500274731ae84fd9 (diff) |
New configuration logic, iteration 1
Diffstat (limited to 'build2/cxx/module.cxx')
-rw-r--r-- | build2/cxx/module.cxx | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/build2/cxx/module.cxx b/build2/cxx/module.cxx index aac2af0..fba52b8 100644 --- a/build2/cxx/module.cxx +++ b/build2/cxx/module.cxx @@ -33,7 +33,7 @@ namespace build2 cxx_init (scope& r, scope& b, const location& loc, - unique_ptr<module>&, + unique_ptr<module_base>&, bool first, bool) { @@ -62,14 +62,13 @@ namespace build2 { auto& v (var_pool); - // @@ OVR - - v.insert<path> ("config.cxx", true); - - v.insert<strings> ("config.cxx.poptions"); - v.insert<strings> ("config.cxx.coptions"); - v.insert<strings> ("config.cxx.loptions"); - v.insert<strings> ("config.cxx.libs"); + // Note: some overridable, some not. + // + v.insert<path> ("config.cxx", true); + v.insert<strings> ("config.cxx.poptions", true); + v.insert<strings> ("config.cxx.coptions", true); + v.insert<strings> ("config.cxx.loptions", true); + v.insert<strings> ("config.cxx.libs", true); v.insert<strings> ("cxx.poptions"); v.insert<strings> ("cxx.coptions"); @@ -81,7 +80,7 @@ namespace build2 v.insert<strings> ("cxx.export.loptions"); v.insert<strings> ("cxx.export.libs"); - v.insert<string> ("cxx.std"); + v.insert<string> ("cxx.std", true); } // Register target types. @@ -158,17 +157,17 @@ namespace build2 // using cxx // cxx.coptions += <overriding options> # Note: '+='. // - if (const value& v = config::optional (r, "config.cxx.poptions")) - b.assign ("cxx.poptions") += cast<strings> (v); + b.assign ("cxx.poptions") += cast_null<strings> ( + config::optional (r, "config.cxx.poptions")); - if (const value& v = config::optional (r, "config.cxx.coptions")) - b.assign ("cxx.coptions") += cast<strings> (v); + b.assign ("cxx.coptions") += cast_null<strings> ( + config::optional (r, "config.cxx.coptions")); - if (const value& v = config::optional (r, "config.cxx.loptions")) - b.assign ("cxx.loptions") += cast<strings> (v); + b.assign ("cxx.loptions") += cast_null<strings> ( + config::optional (r, "config.cxx.loptions")); - if (const value& v = config::optional (r, "config.cxx.libs")) - b.assign ("cxx.libs") += cast<strings> (v); + b.assign ("cxx.libs") += cast_null<strings> ( + config::optional (r, "config.cxx.libs")); // config.cxx // |