aboutsummaryrefslogtreecommitdiff
path: root/build/dist/rule.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-11-30 15:28:07 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-11-30 15:28:07 +0200
commited79e798327c9d18c2b5b2dfea8ad98b4d69f883 (patch)
tree0b10baec0f9a9ea466ff782a7cbb4fdd2973a031 /build/dist/rule.cxx
parentd5e4d325c6a4acc8df6f0e42bc7d76e1f833d58a (diff)
Tighten unresolved group logic
Now a wildcard/fallback rule should explicitly detect and handle unresolved situation.
Diffstat (limited to 'build/dist/rule.cxx')
-rw-r--r--build/dist/rule.cxx10
1 files changed, 9 insertions, 1 deletions
diff --git a/build/dist/rule.cxx b/build/dist/rule.cxx
index b5e1185..80e7b05 100644
--- a/build/dist/rule.cxx
+++ b/build/dist/rule.cxx
@@ -26,13 +26,21 @@ namespace build
{
const dir_path& out_root (t.root_scope ().out_path ());
- for (prerequisite_member p: group_prerequisite_members (a, t))
+ auto r (group_prerequisite_members (a, t, false));
+ for (auto i (r.begin ()); i != r.end (); ++i)
{
+ prerequisite_member p (*i);
+
// Skip prerequisites imported from other projects.
//
if (p.proj () != nullptr)
continue;
+ // If we can, go inside see-through groups.
+ //
+ if (p.type ().see_through && i.enter_group ())
+ continue;
+
target& pt (p.search ());
// Don't match targets that are outside of our project.