aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/rule.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/rule.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/rule.cxx')
-rw-r--r--libbuild2/rule.cxx13
1 files changed, 11 insertions, 2 deletions
diff --git a/libbuild2/rule.cxx b/libbuild2/rule.cxx
index 13dd467..04d6b38 100644
--- a/libbuild2/rule.cxx
+++ b/libbuild2/rule.cxx
@@ -15,13 +15,22 @@ using namespace butl;
namespace build2
{
- // rule (vtable)
+ // rule
//
rule::
~rule ()
{
}
+ void rule::
+ reapply (action, target&, match_extra&) const
+ {
+ // Unless the rule overrode cur_options, this function should never get
+ // called. And if it did, then it should override this function.
+ //
+ assert (false);
+ }
+
const target* rule::
import (const prerequisite_key&,
const optional<string>&,
@@ -37,7 +46,7 @@ namespace build2
sub_match (const string& n, operation_id o,
action a, target& t, match_extra& me) const
{
- // First check for an ad hoc recipe (see match_rule() for details).
+ // First check for an ad hoc recipe (see match_rule_impl() for details).
//
if (!t.adhoc_recipes.empty ())
{