diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2022-01-04 14:56:56 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2022-01-06 07:24:42 +0200 |
commit | b236b111e52d08245d9bc1caadd6b78f7723f42c (patch) | |
tree | 35464e35cd43c4613918e8929b2085892a7baa93 /libbuild2/dyndep.hxx | |
parent | 6a242a8050edd0a33ea0e770a6eca4823a98b8d1 (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.hxx | 8 |
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 |