diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2018-07-26 14:12:56 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2018-07-30 13:04:37 +0300 |
commit | d90ac405ae50f84a3cf4ba0b806cca1c89f81cff (patch) | |
tree | 3f66be39a80a0a32cbba332e34b418fa1fc9ad02 /build2/version | |
parent | e92a1aab0e1c7c9ba8e6ab9a7049207468ca53fc (diff) |
Make project variable to be of project_name type
Diffstat (limited to 'build2/version')
-rw-r--r-- | build2/version/init.cxx | 16 | ||||
-rw-r--r-- | build2/version/module.hxx | 11 |
2 files changed, 19 insertions, 8 deletions
diff --git a/build2/version/init.cxx b/build2/version/init.cxx index 397d7da..4234451 100644 --- a/build2/version/init.cxx +++ b/build2/version/init.cxx @@ -138,10 +138,18 @@ namespace build2 catch (const invalid_argument& e) { fail (l) << "invalid version constraint for dependency " - << b << ": " << e; + << d << ": " << e; } - ds.emplace (move (n), move (c)); + try + { + ds.emplace (project_name (move (n)).variable (), move (c)); + } + catch (const invalid_argument& e) + { + fail (l) << "invalid package name for dependency " + << d << ": " << e; + } } } } @@ -232,7 +240,7 @@ namespace build2 // Create the module. // - mod.reset (new module (cast<string> (rs.vars[var_project]), + mod.reset (new module (cast<project_name> (rs.vars[var_project]), move (v), committed, rewritten, @@ -284,7 +292,7 @@ namespace build2 if (!val) { - string p (cast<string> (rs.vars[var_project])); + string p (cast<project_name> (rs.vars[var_project]).string ()); p += '-'; p += v.string (); val = move (p); diff --git a/build2/version/module.hxx b/build2/version/module.hxx index 56536c3..36dd735 100644 --- a/build2/version/module.hxx +++ b/build2/version/module.hxx @@ -16,7 +16,8 @@ namespace build2 { namespace version { - // The 'depends' values from manifest. + // The 'depends' values from manifest. Note that the package names are + // sanitized for use in variable names. // using dependency_constraints = std::map<string, string>; @@ -24,7 +25,9 @@ namespace build2 { static const string name; - const string& project; // The project variable value. + // The project variable value sanitized for use in variable names. + // + const string project; butl::standard_version version; bool committed; // Whether this is a committed snapshot. @@ -34,12 +37,12 @@ namespace build2 bool dist_uncommitted = false; - module (const string& p, + module (const project_name& p, butl::standard_version v, bool c, bool r, dependency_constraints d) - : project (p), + : project (p.variable ()), version (move (v)), committed (c), rewritten (r), |