aboutsummaryrefslogtreecommitdiff
path: root/build2/dist/module.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-08-12 16:39:13 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-08-12 17:04:22 +0200
commit53eb43126e562a43f4e8f2247af10da5c4c3c87f (patch)
treeeddd4c1162c8ee59b85db17f3e39aceb28dd8c0d /build2/dist/module.cxx
parent83b5af87efef571b707fc1f409f22571a9f5054c (diff)
Rename module to init
Diffstat (limited to 'build2/dist/module.cxx')
-rw-r--r--build2/dist/module.cxx146
1 files changed, 0 insertions, 146 deletions
diff --git a/build2/dist/module.cxx b/build2/dist/module.cxx
deleted file mode 100644
index 2da75c4..0000000
--- a/build2/dist/module.cxx
+++ /dev/null
@@ -1,146 +0,0 @@
-// file : build2/dist/module.cxx -*- C++ -*-
-// copyright : Copyright (c) 2014-2016 Code Synthesis Ltd
-// license : MIT; see accompanying LICENSE file
-
-#include <build2/dist/module>
-
-#include <build2/scope>
-#include <build2/file>
-#include <build2/diagnostics>
-
-#include <build2/config/utility>
-
-#include <build2/dist/rule>
-#include <build2/dist/operation>
-
-using namespace std;
-using namespace butl;
-
-namespace build2
-{
- namespace dist
- {
- static rule rule_;
-
- void
- boot (scope& r, const location&, unique_ptr<module_base>&)
- {
- tracer trace ("dist::boot");
-
- l5 ([&]{trace << "for " << r.out_path ();});
-
- // Register meta-operation.
- //
- r.meta_operations.insert (dist_id, dist);
-
- // Enter module variables. Do it during boot in case they get assigned
- // in bootstrap.build (which is customary for, e.g., dist.package).
- //
- {
- auto& v (var_pool);
-
- // Note: some overridable, some not.
- //
- v.insert<abs_dir_path> ("config.dist.root", true);
- v.insert<strings> ("config.dist.archives", true);
- v.insert<path> ("config.dist.cmd", true);
-
- v.insert<dir_path> ("dist.root");
- v.insert<path> ("dist.cmd");
- v.insert<strings> ("dist.archives");
-
- v.insert<bool> ("dist"); // Flag.
- v.insert<string> ("dist.package"); // Project's package name.
- }
- }
-
- bool
- init (scope& r,
- scope&,
- const location& l,
- unique_ptr<module_base>&,
- bool first,
- bool,
- const variable_map& config_hints)
- {
- tracer trace ("dist::init");
-
- if (!first)
- {
- warn (l) << "multiple dist module initializations";
- return true;
- }
-
- const dir_path& out_root (r.out_path ());
- l5 ([&]{trace << "for " << out_root;});
-
- assert (config_hints.empty ()); // We don't known any hints.
-
- // Register our wildcard rule. Do it explicitly for the alias
- // to prevent something like insert<target>(dist_id, test_id)
- // taking precedence.
- //
- r.rules.insert<target> (dist_id, 0, "dist", rule_);
- r.rules.insert<alias> (dist_id, 0, "dist.alias", rule_);
-
- // Configuration.
- //
- // Note that we don't use any defaults for root -- the location
- // must be explicitly specified or we will complain if and when
- // we try to dist.
- //
- bool s (config::specified (r, "config.dist"));
-
- // Adjust module priority so that the config.dist.* values are saved at
- // the end of config.build.
- //
- if (s)
- config::save_module (r, "dist", INT32_MAX);
-
- // dist.root
- //
- {
- value& v (r.assign ("dist.root"));
-
- if (s)
- {
- const value& cv (config::optional (r, "config.dist.root"));
-
- if (cv && !cv.empty ()) // @@ BC LT [null]
- v = cast<dir_path> (cv); // Strip abs_dir_path.
- }
- }
-
- // dist.cmd
- //
- {
- value& v (r.assign ("dist.cmd"));
-
- if (s)
- {
- const value& cv (
- config::required (r, "config.dist.cmd", path ("install")).first);
-
- if (cv && !cv.empty ()) // @@ BC LT [null]
- v = cv;
- }
- }
-
- // dist.archives
- //
- {
- value& v (r.assign ("dist.archives"));
-
- if (s)
- {
- const value& cv (config::optional (r, "config.dist.archives"));
-
- if (cv && !cv.empty ()) // @@ BC LT [null]
- v = cv;
- }
- }
-
- return true;
- }
- }
-}