From 4f63afc1177021d6345502892dbd028f5d6db5eb Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 16 Jul 2018 15:21:26 +0200 Subject: Implement in module Given test.in containing something along these lines: foo = $foo$ Now we can do: using in file{test}: in{test.in} file{test}: foo = FOO The alternative variable substitution symbol can be specified with the in.symbol variable and lax (instead of the default strict) mode with in.substitution. For example: file{test}: in.symbol = '@' file{test}: in.substitution = lax --- build2/b.cxx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'build2/b.cxx') diff --git a/build2/b.cxx b/build2/b.cxx index cd738f2..977a76e 100644 --- a/build2/b.cxx +++ b/build2/b.cxx @@ -45,15 +45,19 @@ using namespace butl; using namespace std; #include +#include +#include #include +#include + +#include + #include #include #include #include + #include -#include -#include -#include namespace build2 { @@ -385,6 +389,9 @@ main (int argc, char* argv[]) bm["install"] = mf {&install::boot, &install::init}; bm["version"] = mf {&version::boot, &version::init}; + bm["in.base"] = mf {nullptr, &in::base_init}; + bm["in"] = mf {nullptr, &in::init}; + bm["bin.vars"] = mf {nullptr, &bin::vars_init}; bm["bin.config"] = mf {nullptr, &bin::config_init}; bm["bin"] = mf {nullptr, &bin::init}; -- cgit v1.1