aboutsummaryrefslogtreecommitdiff
path: root/libbuild2
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2022-10-20 12:17:15 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2022-10-20 12:17:15 +0200
commitb85ec1f2cc27ee178488de480eb3f64245a6e563 (patch)
treee7a32955d14bf99f3079d473c282fe0b1cf99e89 /libbuild2
parent8a9ea214483adccc446954bfa9f4f3aade997275 (diff)
Ignore post hoc prerequisites in dist rule
Diffstat (limited to 'libbuild2')
-rw-r--r--libbuild2/dist/rule.cxx8
1 files changed, 7 insertions, 1 deletions
diff --git a/libbuild2/dist/rule.cxx b/libbuild2/dist/rule.cxx
index e47f1f8..0c72ff5 100644
--- a/libbuild2/dist/rule.cxx
+++ b/libbuild2/dist/rule.cxx
@@ -33,7 +33,13 @@ namespace build2
group_prerequisite_members (a, t, members_mode::maybe))
{
// Note: no exclusion tests, we want all of them (and see also the
- // dist_include() override).
+ // dist_include() override). But if we don't ignore post hoc ones
+ // here, we will end up with a cycle (they will still be handled
+ // by the post-pass).
+ //
+ lookup l; // Ignore any operation-specific values.
+ if (include (a, t, pm, &l) == include_type::posthoc)
+ continue;
// Skip prerequisites imported from other projects.
//