aboutsummaryrefslogtreecommitdiff
path: root/build2/config/module
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-04-11 07:57:19 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-04-11 07:57:19 +0200
commit0342dc2fcdd78ef28a4e59d84193a3807068d726 (patch)
treee750c3062d6ff54f0d409fe1a25984b7e78592c8 /build2/config/module
parent5f7c3f923de106f9d204a8f3500274731ae84fd9 (diff)
New configuration logic, iteration 1
Diffstat (limited to 'build2/config/module')
-rw-r--r--build2/config/module18
1 files changed, 16 insertions, 2 deletions
diff --git a/build2/config/module b/build2/config/module
index 5f3c826..6012442 100644
--- a/build2/config/module
+++ b/build2/config/module
@@ -5,21 +5,35 @@
#ifndef BUILD2_CONFIG_MODULE
#define BUILD2_CONFIG_MODULE
+#include <butl/prefix-map>
+
#include <build2/types>
#include <build2/utility>
#include <build2/module>
+#include <build2/variable>
namespace build2
{
namespace config
{
+ struct module: module_base
+ {
+ // A sorted list of config.* variables and flags (currently unused) that
+ // are used (as opposed to just specified) in this configuration.
+ // Populated by the config utility functions (required(), optional())
+ //
+ butl::prefix_map<variable_cref, uint64_t, '.'> vars;
+
+ static const string name;
+ };
+
extern "C" void
- config_boot (scope&, const location&, unique_ptr<module>&);
+ config_boot (scope&, const location&, unique_ptr<module_base>&);
extern "C" bool
config_init (
- scope&, scope&, const location&, unique_ptr<module>&, bool, bool);
+ scope&, scope&, const location&, unique_ptr<module_base>&, bool, bool);
}
}