aboutsummaryrefslogtreecommitdiff
path: root/build/target
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-11-29 14:31:00 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-11-29 14:31:00 +0200
commitb1d778b2303c3dcb3f70e4b29a0a9bcba72c11d6 (patch)
treec300eebf51f2f72d37bfea48114ffcefedc61fc5 /build/target
parent15d7a706a5f6904a4f295b5cddd7cbd51b04e863 (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')
-rw-r--r--build/target16
1 files changed, 10 insertions, 6 deletions
diff --git a/build/target b/build/target
index f2b093e..d451851 100644
--- a/build/target
+++ b/build/target
@@ -609,14 +609,18 @@ namespace build
g_.count = 1;
}
- // Iterate over this group's members. Similar to leave_group(),
- // you should increment the iterator after calling this function.
+ // Iterate over this group's members. Return false if the member
+ // information is not available. Similar to leave_group(), you
+ // should increment the iterator after calling this function
+ // (provided it returned true).
//
- void
+ bool
enter_group ()
{
- switch_members ();
- --j_; // Compensate for the increment that will follow.
+ bool r (switch_members ());
+ if (r)
+ --j_; // Compensate for the increment that will follow.
+ return r;
}
value_type operator* () const
@@ -646,7 +650,7 @@ namespace build
operator!= (const iterator& x, const iterator& y) {return !(x == y);}
private:
- void
+ bool
switch_members ();
private: