From 9891b20350021ce41a950645dd76df20a45c92cc Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 2 Dec 2015 11:37:15 +0200 Subject: Implement optional module loading The syntax is: using? cli Now each module use results in two bool variables: .loaded and .configured. Also implement variable visibility (the above two variables are limited to project). --- build/test/rule.cxx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'build/test/rule.cxx') diff --git a/build/test/rule.cxx b/build/test/rule.cxx index ea268a9..3a4c91d 100644 --- a/build/test/rule.cxx +++ b/build/test/rule.cxx @@ -72,7 +72,7 @@ namespace build // if (!l.defined ()) l = t.base_scope ()[ - variable_pool.find (string("test.") + t.type ().name, bool_type)]; + var_pool.find (string("test.") + t.type ().name, bool_type)]; r = l && as (*l); } @@ -150,13 +150,15 @@ namespace build string n ("test."); n += t.type ().name; - const variable& in (variable_pool.find (n + ".input", name_type)); - const variable& on (variable_pool.find (n + ".output", name_type)); - const variable& rn (variable_pool.find (n + ".roundtrip", name_type)); + const variable& in (var_pool.find (n + ".input", name_type)); + const variable& on (var_pool.find (n + ".output", name_type)); + const variable& rn (var_pool.find (n + ".roundtrip", name_type)); // We should only keep value(s) that were specified together // in the innermost scope. // + // @@ Shouldn't we stop at project root? + // for (scope* s (&bs); s != nullptr; s = s->parent_scope ()) { ol = s->vars[on]; @@ -294,7 +296,7 @@ namespace build var += t.type ().name; var += '.'; var += n; - l = t.base_scope ()[variable_pool.find (var, strings_type)]; + l = t.base_scope ()[var_pool.find (var, strings_type)]; } if (l) -- cgit v1.1