From 40537e7e0941926168226f8a841544f3536a55cb Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 29 Apr 2015 14:57:40 +0200 Subject: Get rid of on-demand configuration for now --- build/bin/module.cxx | 46 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 10 deletions(-) (limited to 'build/bin/module.cxx') diff --git a/build/bin/module.cxx b/build/bin/module.cxx index 89ea9fe..f27ea68 100644 --- a/build/bin/module.cxx +++ b/build/bin/module.cxx @@ -16,6 +16,12 @@ namespace build { namespace bin { + // Default config.bin.*.lib values. + // + static const list_value exe_lib (names {name ("shared"), name ("static")}); + static const list_value liba_lib ("static"); + static const list_value libso_lib ("shared"); + void init (scope& root, scope& base, const location& l) { @@ -35,23 +41,43 @@ namespace build // Configure. // - } - - void - init_lib (const dir_path& d) - { - scope* root (scopes.find (d).root_scope ()); + using config::required; - if (root == nullptr) - return; + //@@ Need to validate the values. Would be more efficient + // to do it once on assignment than every time on query. + // Custom var type? + // // config.bin.lib // { - auto v (root->vars.assign ("bin.lib")); + auto v (root.vars.assign ("bin.lib")); + if (!v) + v = required (root, "config.bin.lib", "shared").first; + } + + // config.bin.exe.lib + // + { + auto v (root.vars.assign ("bin.exe.lib")); + if (!v) + v = required (root, "config.bin.exe.lib", exe_lib).first; + } + + // config.bin.liba.lib + // + { + auto v (root.vars.assign ("bin.liba.lib")); + if (!v) + v = required (root, "config.bin.liba.lib", liba_lib).first; + } + // config.bin.libso.lib + // + { + auto v (root.vars.assign ("bin.libso.lib")); if (!v) - v = config::required (*root, "config.bin.lib", "shared").first; + v = required (root, "config.bin.libso.lib", libso_lib).first; } } } -- cgit v1.1