aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/install/init.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2019-08-22 14:38:57 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2019-08-23 18:14:07 +0200
commit5035f4ef68922ac758b1e4734e67d73c9228010b (patch)
tree271fdd5b1d6e995a058d97aacb3ac90a538d9ff1 /libbuild2/install/init.cxx
parent8793941652d6aa1c3d02b2f87f691e6d06254b7d (diff)
Introduce notion of build context
All non-const global state is now in class context and we can now have multiple independent builds going on at the same time.
Diffstat (limited to 'libbuild2/install/init.cxx')
-rw-r--r--libbuild2/install/init.cxx17
1 files changed, 10 insertions, 7 deletions
diff --git a/libbuild2/install/init.cxx b/libbuild2/install/init.cxx
index 060007b..d2321b5 100644
--- a/libbuild2/install/init.cxx
+++ b/libbuild2/install/init.cxx
@@ -62,7 +62,7 @@ namespace build2
vn += name;
}
vn += var;
- const variable& vr (var_pool.rw (r).insert<CT> (move (vn), true));
+ const variable& vr (r.ctx.var_pool.rw (r).insert<CT> (move (vn), true));
l = dv != nullptr
? config::required (r, vr, *dv, override).first
@@ -79,7 +79,7 @@ namespace build2
vn = "install.";
vn += name;
vn += var;
- const variable& vr (var_pool.rw (r).insert<T> (move (vn)));
+ const variable& vr (r.ctx.var_pool.rw (r).insert<T> (move (vn)));
value& v (r.assign (vr));
@@ -122,11 +122,12 @@ namespace build2
// This one doesn't have config.* value (only set in a buildfile).
//
if (!global)
- var_pool.rw (r).insert<bool> (string ("install.") + n + ".subdirs");
+ r.ctx.var_pool.rw (r).insert<bool> (
+ string ("install.") + n + ".subdirs");
}
void
- functions (); // functions.cxx
+ functions (function_map&); // functions.cxx
bool
boot (scope& rs, const location&, unique_ptr<module_base>&)
@@ -134,11 +135,13 @@ namespace build2
tracer trace ("install::boot");
l5 ([&]{trace << "for " << rs;});
+ context& ctx (rs.ctx);
+
// Register install function family if this is the first instance of the
// install modules.
//
- if (!function_family::defined ("install"))
- functions ();
+ if (!function_family::defined (ctx.functions, "install"))
+ functions (ctx.functions);
// Register our operations.
//
@@ -192,7 +195,7 @@ namespace build2
// Enter module variables.
//
- auto& vp (var_pool.rw (rs));
+ auto& vp (rs.ctx.var_pool.rw (rs));
// Note that the set_dir() calls below enter some more.
//