aboutsummaryrefslogtreecommitdiff
path: root/build/file.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/file.cxx
parent70613e9be046c9cddd2486505a44d3a0324d6d95 (diff)
Add notion of strong/weak amalgamation, make strong new clean boundary
Diffstat (limited to 'build/file.cxx')
-rw-r--r--build/file.cxx10
1 files changed, 10 insertions, 0 deletions
diff --git a/build/file.cxx b/build/file.cxx
index 0dff025..b137c32 100644
--- a/build/file.cxx
+++ b/build/file.cxx
@@ -579,6 +579,11 @@ namespace build
bootstrap_src (rs);
create_bootstrap_outer (rs);
+
+ // Check if we are strongly amalgamated by this outer root scope.
+ //
+ if (root.src_path ().sub (rs.src_path ()))
+ root.strong_ = rs.strong_scope (); // Itself or some outer scope.
}
scope&
@@ -612,6 +617,11 @@ namespace build
bootstrap_src (rs);
+ // Check if we strongly amalgamated this inner root scope.
+ //
+ if (rs.src_path ().sub (root.src_path ()))
+ rs.strong_ = root.strong_scope (); // Itself or some outer scope.
+
// See if there are more inner roots.
//
return create_bootstrap_inner (rs, out_base);