diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-11-29 14:31:00 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-11-29 14:31:00 +0200 |
commit | b1d778b2303c3dcb3f70e4b29a0a9bcba72c11d6 (patch) | |
tree | c300eebf51f2f72d37bfea48114ffcefedc61fc5 /build/target.ixx | |
parent | 15d7a706a5f6904a4f295b5cddd7cbd51b04e863 (diff) |
Allow for target group members to remain unresolved
This, for example, can happen when we have a fallback rule for dist(update)
or configure(update).
Diffstat (limited to 'build/target.ixx')
-rw-r--r-- | build/target.ixx | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/build/target.ixx b/build/target.ixx index 3ae9660..3d48904 100644 --- a/build/target.ixx +++ b/build/target.ixx @@ -57,17 +57,26 @@ namespace build } template <typename T> - inline void prerequisite_members_range<T>::iterator:: + inline bool prerequisite_members_range<T>::iterator:: switch_members () { - j_ = 1; - do { g_ = resolve_group_members (r_->a_, search (*i_)); + + // If members are not know, iterate over the group as itself. + // + if (g_.members == nullptr) + { + g_.count = 0; + return false; + } } while (g_.count == 0 && // Skip empty groups. ++i_ != r_->e_ && i_->get ().type.see_through); + + j_ = 1; // Start from the first group member. + return true; } } |