From 9689e2bafcf9af511df1f357aa3f6ec8545d0010 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 8 Feb 2022 14:32:41 +0200 Subject: Don't skip empty see-through target groups --- libbuild2/target.ixx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'libbuild2/target.ixx') diff --git a/libbuild2/target.ixx b/libbuild2/target.ixx index cfc3847..fddf1b2 100644 --- a/libbuild2/target.ixx +++ b/libbuild2/target.ixx @@ -456,6 +456,25 @@ namespace build2 } template + inline void prerequisite_members_range::iterator:: + switch_mode () + { + g_ = resolve_members (*i_); + + if (g_.members != nullptr) + { + // See empty see through groups as groups. + // + for (j_ = 1; j_ <= g_.count && g_.members[j_ - 1] == nullptr; ++j_) ; + + if (j_ > g_.count) + g_.count = 0; + } + else + assert (r_->mode_ != members_mode::always); // Group can't be resolved. + } + + template inline auto prerequisite_members_range::iterator:: operator++ () -> iterator& { -- cgit v1.1