aboutsummaryrefslogtreecommitdiff
path: root/build2/context.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-01-30 11:12:25 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-02-13 12:42:41 +0200
commitb262d2c9c56eed18d043dccefac02b54a6ae2f95 (patch)
tree010e5c6cce042e0fbf25817a62659d251c220acf /build2/context.cxx
parentf93038fbee1631b95922b0742e0fd00fa8dae02e (diff)
Implement pattern-based variable typing, tighten variable type update
Diffstat (limited to 'build2/context.cxx')
-rw-r--r--build2/context.cxx17
1 files changed, 16 insertions, 1 deletions
diff --git a/build2/context.cxx b/build2/context.cxx
index 0f13f27..a8fe2df 100644
--- a/build2/context.cxx
+++ b/build2/context.cxx
@@ -231,8 +231,23 @@ namespace build2
vos.emplace_back (variable_override {var, *o, move (r.first)});
}
- // Enter builtin variables.
+ // Enter builtin variables and patterns.
//
+
+ // file.cxx:import()
+ //
+ // Note that the order is important (reverse application).
+ //
+ vp.insert_pattern<path> ("config.import.**", true);
+ vp.insert_pattern<abs_dir_path> ("config.import.*", true);
+
+ // module.cxx:load_module().
+ //
+ vp.insert_pattern<bool> ("**.loaded", false, variable_visibility::project);
+ vp.insert_pattern<bool> ("**.configured",
+ false,
+ variable_visibility::project);
+
var_src_root = &vp.insert<dir_path> ("src_root");
var_out_root = &vp.insert<dir_path> ("out_root");
var_src_base = &vp.insert<dir_path> ("src_base");