aboutsummaryrefslogtreecommitdiff
path: root/build/rule.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-07-14 09:47:40 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-07-14 09:47:40 +0200
commit8276259438592439236341b74300cb5538303c83 (patch)
tree0e072ee31bd13ff55f2c3e0d4a0b50725f8dd73f /build/rule.cxx
parent70613e9be046c9cddd2486505a44d3a0324d6d95 (diff)
Add notion of strong/weak amalgamation, make strong new clean boundary
Diffstat (limited to 'build/rule.cxx')
-rw-r--r--build/rule.cxx32
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)
{