aboutsummaryrefslogtreecommitdiff
path: root/build/config/module.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-12-02 11:37:15 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-12-02 11:37:15 +0200
commit9891b20350021ce41a950645dd76df20a45c92cc (patch)
tree0cd27041b0c3413e17b9319ae99e87c5e745b1ff /build/config/module.cxx
parent74212589a797ca75e55f92a522e198915c0dbaf6 (diff)
Implement optional module loading
The syntax is: using? cli Now each module use results in two bool variables: <module>.loaded and <module>.configured. Also implement variable visibility (the above two variables are limited to project).
Diffstat (limited to 'build/config/module.cxx')
-rw-r--r--build/config/module.cxx9
1 files changed, 6 insertions, 3 deletions
diff --git a/build/config/module.cxx b/build/config/module.cxx
index bb787a0..b95c6c7 100644
--- a/build/config/module.cxx
+++ b/build/config/module.cxx
@@ -24,12 +24,13 @@ namespace build
//
static const path config_file ("build/config.build");
- extern "C" void
+ extern "C" bool
config_init (scope& r,
scope& b,
const location& l,
std::unique_ptr<module>&,
- bool first)
+ bool first,
+ bool)
{
tracer trace ("config::init");
@@ -39,7 +40,7 @@ namespace build
if (!first)
{
warn (l) << "multiple config module initializations";
- return;
+ return true;
}
const dir_path& out_root (r.out_path ());
@@ -65,6 +66,8 @@ namespace build
if (file_exists (f))
source (f, r, r);
+
+ return true;
}
}
}