aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/adhoc-rule-cxx.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2023-10-17 15:01:53 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2023-11-01 10:25:35 +0200
commitc5d8a9cf5137c3272cab4981eeff97c16304de95 (patch)
treefb28084f9b022cda996c7c16d4b1370d019619a0 /libbuild2/adhoc-rule-cxx.cxx
parentd3b4636ca3f4c3ad98c8096326c5b1460d05691d (diff)
Add notion of match options
Now, when matching a rule, the caller may request a subset of the full functionality of performing an operation on a target. This is achieved with match options.
Diffstat (limited to 'libbuild2/adhoc-rule-cxx.cxx')
-rw-r--r--libbuild2/adhoc-rule-cxx.cxx12
1 files changed, 11 insertions, 1 deletions
diff --git a/libbuild2/adhoc-rule-cxx.cxx b/libbuild2/adhoc-rule-cxx.cxx
index e3dfe92..637f9af 100644
--- a/libbuild2/adhoc-rule-cxx.cxx
+++ b/libbuild2/adhoc-rule-cxx.cxx
@@ -691,10 +691,20 @@ namespace build2
? t.group->is_a<group> ()
: nullptr))
{
- match_sync (a, *g);
+ // @@ Hm, this looks very similar to how we handle ad hoc group members.
+ // Shouldn't impl be given a chance to translate options or some
+ // such?
+ //
+ match_sync (a, *g, 0 /* options */);
return group_recipe; // Execute the group's recipe.
}
return impl.load (memory_order_relaxed)->apply (a, t, me);
}
+
+ void adhoc_cxx_rule::
+ reapply (action a, target& t, match_extra& me) const
+ {
+ return impl.load (memory_order_relaxed)->reapply (a, t, me);
+ }
}