aboutsummaryrefslogtreecommitdiff
path: root/build2/version
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2018-07-26 14:12:56 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2018-07-30 13:04:37 +0300
commitd90ac405ae50f84a3cf4ba0b806cca1c89f81cff (patch)
tree3f66be39a80a0a32cbba332e34b418fa1fc9ad02 /build2/version
parente92a1aab0e1c7c9ba8e6ab9a7049207468ca53fc (diff)
Make project variable to be of project_name type
Diffstat (limited to 'build2/version')
-rw-r--r--build2/version/init.cxx16
-rw-r--r--build2/version/module.hxx11
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),