diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-07-01 09:11:31 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-07-01 09:11:31 +0200 |
commit | 17b3a78696f0b1fd6f0f60d53ec568cf3b9e32b4 (patch) | |
tree | f54f92e5066e1a97a070af248931316cd76b61c3 /build/algorithm | |
parent | 70af0087d8efb3f2f7dc9ffdf2568419913f16da (diff) |
Cleanup group "see through" design
Diffstat (limited to 'build/algorithm')
-rw-r--r-- | build/algorithm | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/build/algorithm b/build/algorithm index 2547466..1cfd15b 100644 --- a/build/algorithm +++ b/build/algorithm @@ -60,25 +60,38 @@ namespace build void match (action, target&); - // The default prerequisite search and match implementation. It calls + // The standard prerequisite search and match implementations. They call + // search_and_match_*() versions below passing non-empty directory for + // the clean operation. + // + void + search_and_match_prerequisites (action, target&); + + // If we are cleaning, this function doesn't go into group members, + // as an optimization (the group should clean everything up). + // + void + search_and_match_prerequisite_members (action, target&); + + // The actual prerequisite search and match implementations. They call // search() and then match() for each prerequisite in a loop. If this - // target is a member of a group, then it first does this to the group's + // target is a member of a group, then they first do this to the group's // prerequisites. // + // If the directory argument is not empty, then they ignore (do not + // match) prerequisites that are not in the same or its subdirectory. + // void - search_and_match (action, target&); + search_and_match_prerequisites (action, target&, const dir_path&); - // As above but ignores (does not match) prerequisites that are not - // in the same or a subdirectory of dir. - // void - search_and_match (action, target&, const dir_path&); + search_and_match_prerequisite_members (action, target&, const dir_path&); // Unless already available, match, and, if necessary, execute // the group in order to obtain its members list. // group_view - resolve_group_members (action, target_group&); + resolve_group_members (action, target&); // Inject dependency on the parent directory's fsdir{}, unless it is // the project's out_root (or is outside of any project; say, for |