aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/dyndep.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2022-01-04 14:56:56 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2022-01-06 07:24:42 +0200
commitb236b111e52d08245d9bc1caadd6b78f7723f42c (patch)
tree35464e35cd43c4613918e8929b2085892a7baa93 /libbuild2/dyndep.hxx
parent6a242a8050edd0a33ea0e770a6eca4823a98b8d1 (diff)
Add depdb-dyndep --update-{include,exclude} options
These options specify prerequisite targets/patterns to include/exclude (from the static prerequisite set) for update during match as part of dynamic dependency extraction (those excluded will be updated during execute). For example: depdb dyndep ... --update-exclude libue{hello-meta} ... depdb dyndep ... --update-exclude libue{*} ... depdb dyndep ... --update-include $moc --update-include hxx{*} ... The order in which these options are specified is significant with the first target/pattern that matches determining the result. If only the --update-include options are specified, then only the explicitly included prerequisites will be updated. Otherwise, all prerequisites that are not explicitly excluded will be updated. If none of these options is specified, then all the static prerequisites are updated during match. Note also that these options do not apply to ad hoc prerequisites which are always updated during match.
Diffstat (limited to 'libbuild2/dyndep.hxx')
-rw-r--r--libbuild2/dyndep.hxx8
1 files changed, 6 insertions, 2 deletions
diff --git a/libbuild2/dyndep.hxx b/libbuild2/dyndep.hxx
index ad95df1..b285704 100644
--- a/libbuild2/dyndep.hxx
+++ b/libbuild2/dyndep.hxx
@@ -42,6 +42,7 @@ namespace build2
// hoc. But on the other hand, taking headers as an example, if the same
// header is listed as a static prerequisite, it will most definitely not
// going to be ad hoc. So we leave it to the caller to make this decision.
+ // Similarly, the data argument is passed to the prerequisite_target ctor.
//
static optional<bool>
inject_file (tracer&, const char* what,
@@ -49,7 +50,8 @@ namespace build2
const file& prerequiste,
timestamp,
bool fail,
- bool adhoc = false);
+ bool adhoc = false,
+ uintptr_t data = 0);
// As above but verify the file is matched with noop_recipe and issue
// diagnostics and fail otherwise (regardless of the fail flag).
@@ -64,7 +66,9 @@ namespace build2
action, target&,
const file& prerequiste,
timestamp,
- bool fail);
+ bool fail,
+ bool adhoc = false,
+ uintptr_t data = 0);
// Verify the file is matched with noop_recipe and issue diagnostics and
// fail otherwise. If the file is not matched, then fail if the target is