aboutsummaryrefslogtreecommitdiff
path: root/build2/file.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-03-31 09:01:50 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-03-31 09:01:50 +0200
commit6417a4e6af2b7732ec0da6af24f1a56f7cdada3f (patch)
tree58ffae7ef0cdac55acd6d498dfc66ce0967f4e9a /build2/file.cxx
parent31bd69c56bc29ec1c154a7c0623b6f0ccce78af1 (diff)
Set part of variable override implementation
Diffstat (limited to 'build2/file.cxx')
-rw-r--r--build2/file.cxx14
1 files changed, 10 insertions, 4 deletions
diff --git a/build2/file.cxx b/build2/file.cxx
index 90d584d..1f4e517 100644
--- a/build2/file.cxx
+++ b/build2/file.cxx
@@ -10,12 +10,12 @@
#include <build2/scope>
#include <build2/context>
-#include <build2/parser>
#include <build2/prerequisite>
#include <build2/diagnostics>
#include <build2/token>
#include <build2/lexer>
+#include <build2/parser>
using namespace std;
using namespace butl;
@@ -131,11 +131,15 @@ namespace build2
rs.out_path_ = &i->first;
}
+ // First time create_root() is called on this scope.
+ //
+ bool first (rs.meta_operations.empty ());
+
// Enter built-in meta-operation and operation names. Loading of
// modules (via the src bootstrap; see below) can result in
// additional meta/operations being added.
//
- if (rs.meta_operations.empty ())
+ if (first)
{
rs.meta_operations.insert (perform_id, perform);
@@ -844,12 +848,14 @@ namespace build2
break;
}
- // Then try the config.import.* mechanism.
+ // Then try the config.import.* mechanism (overridable variable).
//
if (out_root.empty ())
{
+ // @@ OVR
+ //
const variable& var (
- var_pool.find<dir_path> ("config.import." + project));
+ var_pool.insert<dir_path> ("config.import." + project, true));
if (auto l = iroot[var])
{