aboutsummaryrefslogtreecommitdiff
path: root/build/config/module.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'build/config/module.cxx')
-rw-r--r--build/config/module.cxx90
1 files changed, 0 insertions, 90 deletions
diff --git a/build/config/module.cxx b/build/config/module.cxx
deleted file mode 100644
index c9139ed..0000000
--- a/build/config/module.cxx
+++ /dev/null
@@ -1,90 +0,0 @@
-// file : build/config/module.cxx -*- C++ -*-
-// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
-// license : MIT; see accompanying LICENSE file
-
-#include <build/config/module>
-
-#include <butl/filesystem>
-
-#include <build/file>
-#include <build/rule>
-#include <build/scope>
-#include <build/diagnostics>
-
-#include <build/config/operation>
-
-using namespace std;
-using namespace butl;
-
-namespace build
-{
- namespace config
- {
- //@@ Same as in operation.cxx
- //
- static const path config_file ("build/config.build");
-
- extern "C" void
- config_boot (scope& root, const location&, unique_ptr<module>&)
- {
- tracer trace ("config::boot");
-
- const dir_path& out_root (root.out_path ());
- level5 ([&]{trace << "for " << out_root;});
-
- // Register meta-operations.
- //
- root.meta_operations.insert (configure_id, configure);
- root.meta_operations.insert (disfigure_id, disfigure);
-
- // Load config.build if one exists.
- //
- // Note that we have to do this during bootstrap since the order in
- // which the modules will be initialized is unspecified. So it is
- // possible that some module which needs the configuration will get
- // called first.
- //
- path f (out_root / config_file);
-
- if (file_exists (f))
- source (f, root, root);
- }
-
- extern "C" bool
- config_init (scope& root,
- scope&,
- const location& l,
- std::unique_ptr<module>&,
- bool first,
- bool)
- {
- tracer trace ("config::init");
-
- if (!first)
- {
- warn (l) << "multiple config module initializations";
- return true;
- }
-
- level5 ([&]{trace << "for " << root.out_path ();});
-
- // Register alias and fallback rule for the configure meta-operation.
- //
- {
- // We need this rule for out-of-any-project dependencies (e.g.,
- // libraries imported from /usr/lib).
- //
- global_scope->rules.insert<file> (
- configure_id, 0, "config.file", file_rule::instance);
-
- auto& r (root.rules);
-
- r.insert<target> (configure_id, 0, "config", fallback_rule::instance);
- r.insert<file> (configure_id, 0, "config.file", fallback_rule::instance);
- r.insert<alias> (configure_id, 0, "config.alias", alias_rule::instance);
- }
-
- return true;
- }
- }
-}