From 57b10c06925d0bdf6ffb38488ee908f085109e95 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Thu, 4 Jul 2019 19:12:15 +0300 Subject: Move config, dist, test, and install modules into library --- build2/dist/init.cxx | 186 --------------------------------------------------- 1 file changed, 186 deletions(-) delete mode 100644 build2/dist/init.cxx (limited to 'build2/dist/init.cxx') diff --git a/build2/dist/init.cxx b/build2/dist/init.cxx deleted file mode 100644 index 8edbccb..0000000 --- a/build2/dist/init.cxx +++ /dev/null @@ -1,186 +0,0 @@ -// file : build2/dist/init.cxx -*- C++ -*- -// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#include - -#include -#include -#include - -#include - -#include -#include -#include - -using namespace std; -using namespace butl; - -namespace build2 -{ - namespace dist - { - static const rule rule_; - - bool - boot (scope& rs, const location&, unique_ptr& mod) - { - tracer trace ("dist::boot"); - - l5 ([&]{trace << "for " << rs;}); - - // Register the meta-operation. - // - rs.insert_meta_operation (dist_id, mo_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& vp (var_pool.rw (rs)); - - // Note: some overridable, some not. - // - // config.dist.archives is a list of archive extensions (e.g., zip, - // tar.gz) that can be optionally prefixed with a directory. If it is - // relative, then it is prefixed with config.dist.root. Otherwise, the - // archive is written to the absolute location. - // - // config.dist.checksums is a list of archive checksum extensions (e.g., - // sha1, sha256) that can also be optionally prefixed with a directory - // with the same semantics as config.dist.archives. If the directory is - // absent, then the checksum file is written into the same directory as - // the corresponding archive. - // - vp.insert ("config.dist.root", true); - vp.insert ("config.dist.archives", true); - vp.insert ("config.dist.checksums", true); - vp.insert ("config.dist.cmd", true); - - // Allow distribution of uncommitted projects. This is enforced by the - // version module. - // - vp.insert ("config.dist.uncommitted", true); - - vp.insert ("dist.root"); - vp.insert ("dist.cmd"); - vp.insert ("dist.archives"); - vp.insert ("dist.checksums"); - vp.insert ("dist.uncommitted"); - - vp.insert ("dist", variable_visibility::target); // Flag. - - // Project's package name. - // - auto& v_d_p ( - vp.insert ("dist.package", variable_visibility::project)); - - // Create the module. - // - mod.reset (new module (v_d_p)); - - return false; - } - - bool - init (scope& rs, - scope&, - const location& l, - unique_ptr&, - 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 (rs.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(dist_id, test_id) taking precedence. - // - rs.rules.insert (dist_id, 0, "dist", rule_); - rs.rules.insert (dist_id, 0, "dist.alias", rule_); //@@ outer? - - // 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 (rs, "dist")); - - // Adjust module priority so that the config.dist.* values are saved at - // the end of config.build. - // - if (s) - config::save_module (rs, "dist", INT32_MAX); - - // dist.root - // - { - value& v (rs.assign ("dist.root")); - - if (s) - { - if (lookup l = config::optional (rs, "config.dist.root")) - v = cast (l); // Strip abs_dir_path. - } - } - - // dist.cmd - // - { - value& v (rs.assign ("dist.cmd")); - - if (s) - { - if (lookup l = config::required (rs, - "config.dist.cmd", - path ("install")).first) - v = run_search (cast (l), true); - } - } - - // dist.archives - // dist.checksums - // - { - value& a (rs.assign ("dist.archives")); - value& c (rs.assign ("dist.checksums")); - - if (s) - { - if (lookup l = config::optional (rs, "config.dist.archives")) - a = *l; - - if (lookup l = config::optional (rs, "config.dist.checksums")) - { - c = *l; - - if (!c.empty () && (!a || a.empty ())) - fail << "config.dist.checksums specified without " - << "config.dist.archives"; - - } - } - } - - // dist.uncommitted - // - // Omit it from the configuration unless specified. - // - config::omitted (rs, "config.dist.uncommitted"); - - return true; - } - } -} -- cgit v1.1