From 1bb564a690e2661094e9071d4003638390a5a6fe Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 5 Feb 2018 12:02:32 +0200 Subject: Fix test and install rules to handle see-through groups correctly --- build2/target.ixx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'build2/target.ixx') diff --git a/build2/target.ixx b/build2/target.ixx index 16dbf61..242e81d 100644 --- a/build2/target.ixx +++ b/build2/target.ixx @@ -212,7 +212,7 @@ namespace build2 if (k_ == nullptr && g_.count != 0) // Iterating over a normal group. { - if (g_.members == nullptr || // leave_group() + if (g_.members == nullptr || // Special case, see leave_group(). ++j_ > g_.count) g_.count = 0; } @@ -248,7 +248,7 @@ namespace build2 { // Otherwise assume it is a normal group. // - g_ = resolve_group_members (r_->a_, search (*i_)); + g_ = resolve_group_members (r_->a_, search (r_->t_, *i_)); if (g_.members == nullptr) // Members are not know. { @@ -283,6 +283,16 @@ namespace build2 } } + template + inline bool prerequisite_members_range::iterator:: + group () const + { + return + k_ != nullptr ? k_->member != nullptr : /* ad hoc */ + g_.count != 0 ? g_.members != nullptr && j_ < g_.count : /* normal */ + false; + } + // mtime_target // inline void mtime_target:: -- cgit v1.1