aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/algorithm.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2023-10-26 12:06:33 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2023-10-26 12:37:28 +0200
commita3d5de5dfecc694d15f23ed03d13cb108dda3e1b (patch)
tree1fb9bf176ce3aa9ecacdfbb8687ae87198e8af66 /libbuild2/algorithm.hxx
parent0fc035dd4d51c70231a46d6b8a6ba18a91e8ae43 (diff)
Add clean_during_match*() functions
Diffstat (limited to 'libbuild2/algorithm.hxx')
-rw-r--r--libbuild2/algorithm.hxx17
1 files changed, 16 insertions, 1 deletions
diff --git a/libbuild2/algorithm.hxx b/libbuild2/algorithm.hxx
index 779578e..5ebbee2 100644
--- a/libbuild2/algorithm.hxx
+++ b/libbuild2/algorithm.hxx
@@ -649,7 +649,8 @@ namespace build2
//
// Note that such a target must still be updated normally during the execute
// phase in order to keep the dependency counts straight (at which point the
- // target state/timestamp will be re-incorporated into the result).
+ // target state/timestamp will be re-incorporated into the result). Unless
+ // it was matched direct.
//
LIBBUILD2_SYMEXPORT bool
update_during_match (tracer&,
@@ -669,6 +670,20 @@ namespace build2
action, target&,
uintptr_t mask = prerequisite_target::include_udm);
+ // Equivalent functions for clean. Note that if possible you should leave
+ // cleaning to normal execute and these functions should only be used in
+ // special cases where this is not possible.
+ //
+ LIBBUILD2_SYMEXPORT bool
+ clean_during_match (tracer&,
+ action, const target&);
+
+ LIBBUILD2_SYMEXPORT bool
+ clean_during_match_prerequisites (
+ tracer&,
+ action, target&,
+ uintptr_t mask = prerequisite_target::include_udm);
+
// The default prerequisite execute implementation. Call execute_async() on
// each non-ignored (non-NULL) prerequisite target in a loop and then wait
// for their completion. Return target_state::changed if any of them were