diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2017-01-30 11:12:25 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2017-02-13 12:42:41 +0200 |
commit | b262d2c9c56eed18d043dccefac02b54a6ae2f95 (patch) | |
tree | 010e5c6cce042e0fbf25817a62659d251c220acf /build2/context.cxx | |
parent | f93038fbee1631b95922b0742e0fd00fa8dae02e (diff) |
Implement pattern-based variable typing, tighten variable type update
Diffstat (limited to 'build2/context.cxx')
-rw-r--r-- | build2/context.cxx | 17 |
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"); |