aboutsummaryrefslogtreecommitdiff
path: root/build2/config
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-02-07 10:00:46 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-02-07 14:05:39 +0200
commit378b2598a305d4e332e52460ca89dd867546a58b (patch)
tree7541771843232bc6d51880d58a57e25737b7ba13 /build2/config
parentf10be65c39c18668df31c8680569a6417ef3ae06 (diff)
Initial work for default update outer operation
While update still uses the old "all update rules update all their prerequisites" assumption, test and install have been fixed not to rely on this.
Diffstat (limited to 'build2/config')
-rw-r--r--build2/config/init.cxx22
1 files changed, 14 insertions, 8 deletions
diff --git a/build2/config/init.cxx b/build2/config/init.cxx
index 2552e77..35bc94c 100644
--- a/build2/config/init.cxx
+++ b/build2/config/init.cxx
@@ -121,19 +121,25 @@ namespace build2
// Register alias and fallback rule for the configure meta-operation.
//
+ // We need this rule for out-of-any-project dependencies (e.g.,
+ // libraries imported from /usr/lib). We are registring it on the
+ // global scope similar to builtin rules.
+ //
{
- // We need this rule for out-of-any-project dependencies (e.g.,
- // libraries imported from /usr/lib). Registring it on the global
- // scope smells a bit but seems harmless.
- //
- rs.global ().rules.insert<mtime_target> (
+ auto& r (rs.global ().rules);
+ r.insert<mtime_target> (
configure_id, 0, "config.file", file_rule::instance);
-
+ }
+ {
auto& r (rs.rules);
- r.insert<target> (configure_id, 0, "config", fallback_rule::instance);
- r.insert<file> (configure_id, 0, "config.file", fallback_rule::instance);
+ //@@ outer
r.insert<alias> (configure_id, 0, "config.alias", alias_rule::instance);
+
+ // This allows a custom configure rule while doing nothing by default.
+ //
+ r.insert<target> (configure_id, 0, "config", noop_rule::instance);
+ r.insert<file> (configure_id, 0, "config.file", noop_rule::instance);
}
return true;