diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-10-15 17:57:55 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-11-04 09:26:21 +0200 |
commit | f5090740dcb36067707ff40e0d41cdbeef15e63e (patch) | |
tree | 38529704fcc11544ea3c8f64c1f2d86323692d04 /build2/algorithm.cxx | |
parent | 32e60fc5d4e771c5776ddb6715db10e5de182f28 (diff) |
Add support for skipping rule in delegate_match()
Diffstat (limited to 'build2/algorithm.cxx')
-rw-r--r-- | build2/algorithm.cxx | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/build2/algorithm.cxx b/build2/algorithm.cxx index 8dc5621..2390b04 100644 --- a/build2/algorithm.cxx +++ b/build2/algorithm.cxx @@ -53,7 +53,7 @@ namespace build2 } pair<const rule*, match_result> - match_impl (action a, target& t, bool apply) + match_impl (action a, target& t, bool apply, const rule* skip) { pair<const rule*, match_result> r; @@ -97,8 +97,8 @@ namespace build2 if (om == nullptr) continue; // No entry for this meta-operation id. - // First try the map for the actual operation. If that - // doesn't yeld anything, try the wildcard map. + // First try the map for the actual operation. If that doesn't yeld + // anything, try the wildcard map. // for (size_t oi (o), oip (o); oip != 0; oip = oi, oi = 0) { @@ -140,6 +140,9 @@ namespace build2 const string& n (i->first); const rule& ru (i->second); + if (&ru == skip) + continue; + match_result m; { auto g ( |