aboutsummaryrefslogtreecommitdiff
path: root/libbrep/package.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'libbrep/package.cxx')
-rw-r--r--libbrep/package.cxx21
1 files changed, 17 insertions, 4 deletions
diff --git a/libbrep/package.cxx b/libbrep/package.cxx
index ec8e74a..1b7c4f6 100644
--- a/libbrep/package.cxx
+++ b/libbrep/package.cxx
@@ -110,25 +110,38 @@ namespace brep
examples (move (es)),
benchmarks (move (bms)),
builds (move (bs)),
- build_constraints (!stub () ? move (bc) : build_constraints_type ()),
+ build_constraints (move (bc)),
internal_repository (move (rp)),
location (move (lc)),
fragment (move (fr)),
- sha256sum (move (sh)),
- buildable (!stub () && internal_repository->buildable)
+ sha256sum (move (sh))
{
+ if (stub ())
+ unbuildable_reason = unbuildable_reason::stub;
+ else if (!internal_repository->buildable)
+ unbuildable_reason = unbuildable_reason::unbuildable;
+
+ buildable = !unbuildable_reason;
+
assert (internal_repository->internal);
}
package::
package (package_name nm,
version_type vr,
+ build_class_exprs bs,
+ build_constraints_type bc,
shared_ptr<repository_type> rp)
: id (rp->tenant, move (nm), vr),
tenant (id.tenant),
name (id.name),
version (move (vr)),
- buildable (false)
+ builds (move (bs)),
+ build_constraints (move (bc)),
+ buildable (false),
+ unbuildable_reason (stub ()
+ ? unbuildable_reason::stub
+ : unbuildable_reason::external)
{
assert (!rp->internal);
other_repositories.emplace_back (move (rp));