aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/target.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2021-06-02 08:34:38 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2021-06-08 15:43:08 +0200
commit1346f4cd0d20a5dc7e0471edbbb6ce00f2da5c18 (patch)
tree25a2b70304520bac33aede420ab2ad7715791d69 /libbuild2/target.hxx
parentc5feaaf745421f2ecda672585c462cf4c807d25d (diff)
Redo fallback reverse operation machinery in ad hoc recipes
Diffstat (limited to 'libbuild2/target.hxx')
-rw-r--r--libbuild2/target.hxx14
1 files changed, 14 insertions, 0 deletions
diff --git a/libbuild2/target.hxx b/libbuild2/target.hxx
index 56b10c0..45f285c 100644
--- a/libbuild2/target.hxx
+++ b/libbuild2/target.hxx
@@ -97,6 +97,16 @@ namespace build2
//
using rule_match = pair<const string, reference_wrapper<const rule>>;
+ // Additional information about a rule match (see rule.hxx for details).
+ //
+ // @@ TODO: will probably want to clear it after apply() if add anything
+ // dynamically-allocated here (see apply_impl()).
+ //
+ struct match_extra
+ {
+ bool fallback; // True if matching a fallback rule.
+ };
+
// Target.
//
@@ -495,6 +505,10 @@ namespace build2
//
mutable atomic_count dependents {0};
+ // Match state storage between the match() and apply() calls.
+ //
+ build2::match_extra match_extra;
+
// Matched rule (pointer to hint_rule_map element). Note that in case of
// a direct recipe assignment we may not have a rule (NULL).
//