diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-07-14 09:47:40 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-07-14 09:47:40 +0200 |
commit | 8276259438592439236341b74300cb5538303c83 (patch) | |
tree | 0e072ee31bd13ff55f2c3e0d4a0b50725f8dd73f /build/rule.cxx | |
parent | 70613e9be046c9cddd2486505a44d3a0324d6d95 (diff) |
Add notion of strong/weak amalgamation, make strong new clean boundary
Diffstat (limited to 'build/rule.cxx')
-rw-r--r-- | build/rule.cxx | 32 |
1 files changed, 5 insertions, 27 deletions
diff --git a/build/rule.cxx b/build/rule.cxx index 8f3a7a9..6db0f4f 100644 --- a/build/rule.cxx +++ b/build/rule.cxx @@ -159,35 +159,13 @@ namespace build recipe fsdir_rule:: apply (action a, target& t, const match_result&) const { - switch (a.operation ()) - { - case default_id: - case update_id: - // For default, we don't do anything other than letting our - // prerequisites do their thing. - // - - // Inject dependency on the parent directory. Note that we - // don't do it for clean since we shouldn't be removing it. - // + // Inject dependency on the parent directory. Note that we + // don't do it for clean since we shouldn't be removing it. + // + if (a.operation () != clean_id) inject_parent_fsdir (a, t); - search_and_match_prerequisites (a, t, dir_path ()); - break; - - case clean_id: - // For clean, ignore prerequisites that are not in the same or a - // subdirectory of ours (if t.dir is foo/bar/, then "we" are bar - // and our directory is foo/). Just meditate on it a bit and you - // will see the light. - // - search_and_match_prerequisites ( - a, t, t.dir.root () ? t.dir : t.dir.directory ()); - break; - - default: - assert (false); - } + search_and_match_prerequisites (a, t); switch (a) { |