diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2022-11-29 08:02:51 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2022-11-29 08:02:51 +0200 |
commit | 05afdd8ca16c7066d12510a27e2fc08743bb2e95 (patch) | |
tree | 90c7a43a08c47786df3869d68d7b625bf93174d3 /libbuild2/diagnostics.hxx | |
parent | 472d6d0e49c0114f46ff31267d09acdbf9fba421 (diff) |
Fix backlink logic for target groups
We used to backlink ad hoc group members both via the group and as individual
members. And for explicit groups it was done only via individual members,
which means it only works correctly if every member is individually updated.
Now both types of groups are backlinked from the group target.
Diffstat (limited to 'libbuild2/diagnostics.hxx')
-rw-r--r-- | libbuild2/diagnostics.hxx | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libbuild2/diagnostics.hxx b/libbuild2/diagnostics.hxx index 397d3c0..c048d5b 100644 --- a/libbuild2/diagnostics.hxx +++ b/libbuild2/diagnostics.hxx @@ -69,6 +69,9 @@ namespace build2 // {hxx cxx}{foo-stubs} -> {hxx cxx}{foo-insts} // {hxx cxx}{foo-impls} // + // Currently we only support this for the `group -> dir_path` form (used + // by the backlink machinery). + // // See also the `diag` Buildscript pseudo-builtin which is reduced to one of // the print_diag() calls (adhoc_buildscript_rule::print_custom_diag()). In // particular, if you are adding a new overload, also consider if/how it @@ -196,6 +199,18 @@ namespace build2 const target& l, const path_name_view& r, const char* comb = nullptr); + LIBBUILD2_SYMEXPORT void + print_diag (const char* prog, + target_key&& l, const dir_path& r, + const char* comb = nullptr); + + // prog group -> dir_path + // + LIBBUILD2_SYMEXPORT void + print_diag (const char* prog, + vector<target_key>&& l, const dir_path& r, + const char* comb = nullptr); + // prog path -> path // void |