From 6298f309bddaf3f279a724034e2d1d3ce58e0e1a Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 3 Dec 2015 17:20:15 +0200 Subject: Clean up rule names --- build/config/module.cxx | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'build/config') diff --git a/build/config/module.cxx b/build/config/module.cxx index b95c6c7..77a786b 100644 --- a/build/config/module.cxx +++ b/build/config/module.cxx @@ -25,8 +25,8 @@ namespace build static const path config_file ("build/config.build"); extern "C" bool - config_init (scope& r, - scope& b, + config_init (scope& root, + scope& base, const location& l, std::unique_ptr&, bool first, @@ -34,7 +34,7 @@ namespace build { tracer trace ("config::init"); - if (&r != &b) + if (&root != &base) fail (l) << "config module must be initialized in bootstrap.build"; if (!first) @@ -43,29 +43,36 @@ namespace build return true; } - const dir_path& out_root (r.out_path ()); + const dir_path& out_root (root.out_path ()); level5 ([&]{trace << "for " << out_root;}); // Register meta-operations. // - r.meta_operations.insert (configure_id, configure); - r.meta_operations.insert (disfigure_id, disfigure); + root.meta_operations.insert (configure_id, configure); + root.meta_operations.insert (disfigure_id, disfigure); // Register alias and fallback rule for the configure meta-operation. // - global_scope->rules.insert ( - configure_id, 0, "file", file_rule::instance); + { + // We need this rule for out-of-any-project dependencies (e.g., + // libraries imported from /usr/lib). + // + global_scope->rules.insert ( + configure_id, 0, "config.file", file_rule::instance); + + auto& r (root.rules); - r.rules.insert (configure_id, 0, "alias", alias_rule::instance); - r.rules.insert (configure_id, 0, "", fallback_rule::instance); - r.rules.insert (configure_id, 0, "", fallback_rule::instance); + r.insert (configure_id, 0, "config", fallback_rule::instance); + r.insert (configure_id, 0, "config.file", fallback_rule::instance); + r.insert (configure_id, 0, "config.alias", alias_rule::instance); + } // Load config.build if one exists. // path f (out_root / config_file); if (file_exists (f)) - source (f, r, r); + source (f, root, root); return true; } -- cgit v1.1