aboutsummaryrefslogtreecommitdiff
path: root/build/file
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-04-13 10:29:25 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-04-13 10:29:25 +0200
commit534f9d8db025d58c9ce23f3b81a37e8c34386a27 (patch)
treee7d0c7871a7caf3b3e41c8d00548212f1ca7aa83 /build/file
parentb4ceb7b6aecb7492b28d7a0f6c53fa657a2cd2e5 (diff)
Add initial import support
Diffstat (limited to 'build/file')
-rw-r--r--build/file32
1 files changed, 29 insertions, 3 deletions
diff --git a/build/file b/build/file
index 9975e06..32cac48 100644
--- a/build/file
+++ b/build/file
@@ -6,10 +6,18 @@
#define BUILD_FILE
#include <build/path>
+#include <build/name>
namespace build
{
class scope;
+ struct location;
+
+ bool
+ is_src_root (const path&);
+
+ bool
+ is_out_root (const path&);
void
source (const path& buildfile, scope& root, scope& base);
@@ -25,7 +33,7 @@ namespace build
void
source_once (const path& buildfile, scope& root, scope& base, scope& once);
- // Create project's root scope. Only set the src_root variable is the
+ // Create project's root scope. Only set the src_root variable if the
// passed src_root value is not empty.
//
scope&
@@ -42,10 +50,28 @@ namespace build
bool
bootstrap_src (scope& root);
- // Load project's root[-pre].build unless already loaded.
+ // Create and bootstrap outer root scopes, if any. Loading is
+ // done by load_root_pre() below.
+ //
+ void
+ create_bootstrap_outer (scope& root);
+
+ // Create and bootstrap inner root scopes between root and base,
+ // if any. Return the innermost created root scope or root if
+ // none were created. Loading is done by load_root_pre() below.
+ //
+ scope&
+ create_bootstrap_inner (scope& root, const path& out_base);
+
+ // Load project's root[-pre].build unless already loaded. Also
+ // make sure all outer root scopes are loaded prior to loading
+ // this root scope.
//
void
- root_pre (scope& root);
+ load_root_pre (scope& root);
+
+ void
+ import (scope& base, const name&, const location&);
}
#include <build/file.ixx>