aboutsummaryrefslogtreecommitdiff
path: root/brep
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2016-08-30 00:00:35 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2016-08-30 00:56:59 +0300
commit321fa79e78c17bdb1e3e27f6e8b9d019201584a1 (patch)
treef6078ad550bebb3aea764234a64639fd3277bd1c /brep
parent38bb6be4c90c7fbf95b8e5345de21175d3f1ebd7 (diff)
Support stubs in loader
Diffstat (limited to 'brep')
-rw-r--r--brep/package17
-rw-r--r--brep/package.cxx2
2 files changed, 15 insertions, 4 deletions
diff --git a/brep/package b/brep/package
index 5cfbd45..a193c16 100644
--- a/brep/package
+++ b/brep/package
@@ -157,10 +157,13 @@ namespace brep
bool
empty () const noexcept
{
- bool e (canonical_upstream.empty ());
- assert (!e ||
- (epoch == 0 && canonical_release.empty () && revision == 0));
- return e;
+ // Note that an empty canonical_upstream doesn't denote an empty
+ // canonical_version. Remeber, that canonical_upstream doesn't include
+ // rightmost digit-only zero components? So non-empty version("0") has
+ // an empty canonical_upstream.
+ //
+ return epoch == 0 && canonical_upstream.empty () &&
+ canonical_release.empty () && revision == 0;
}
// Change collation to ensure the proper comparison of the "absent" release
@@ -201,6 +204,12 @@ namespace brep
}
};
+ // Wildcard version. Satisfies any dependency constraint and is represented
+ // as 0+0 (which is also the "stub version"; since a real version is always
+ // greater than the stub version, we reuse it to signify a special case).
+ //
+ extern const version wildcard_version;
+
// priority
//
using bpkg::priority;
diff --git a/brep/package.cxx b/brep/package.cxx
index 9cf0783..2f19e99 100644
--- a/brep/package.cxx
+++ b/brep/package.cxx
@@ -13,6 +13,8 @@ using namespace odb::core;
namespace brep
{
+ const version wildcard_version (0, "0", nullopt, 0);
+
// dependency
//
string dependency::