From 77bef9b64857b1d2ae96dafc2f531cadb374f561 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 20 Sep 2023 09:03:44 +0200 Subject: Fix issue with fallback rule priority in dist module While at it, also remove workarounds for the same issue in the config and test modules. --- libbuild2/config/init.cxx | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'libbuild2/config') diff --git a/libbuild2/config/init.cxx b/libbuild2/config/init.cxx index d42bace..38590ae 100644 --- a/libbuild2/config/init.cxx +++ b/libbuild2/config/init.cxx @@ -26,6 +26,8 @@ namespace build2 { namespace config { + static const file_rule file_rule_ (true /* check_type */); + void functions (function_map&); // functions.cxx @@ -712,21 +714,23 @@ namespace build2 // Register alias and fallback rule for the configure meta-operation. // + rs.insert_rule (configure_id, 0, "config.alias", alias_rule::instance); + + // This allows a custom configure rule while doing nothing by default. + // + rs.insert_rule (configure_id, 0, "config.noop", noop_rule::instance); + // We need this rule for out-of-any-project dependencies (for example, // libraries imported from /usr/lib). We are registering it on the // global scope similar to builtin rules. // - // See a similar rule in the dist module. + // Note: use target instead of anything more specific (such as + // mtime_target) in order not to take precedence over the rules above. // - rs.global_scope ().insert_rule ( - configure_id, 0, "config.file", file_rule::instance); - - rs.insert_rule (configure_id, 0, "config.alias", alias_rule::instance); - - // This allows a custom configure rule while doing nothing by default. + // See a similar rule in the dist module. // - rs.insert_rule (configure_id, 0, "config.noop", noop_rule::instance); - rs.insert_rule (configure_id, 0, "config.noop", noop_rule::instance); + rs.global_scope ().insert_rule ( + configure_id, 0, "config.file", file_rule_); return true; } -- cgit v1.1