diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2022-06-01 13:23:53 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2022-06-07 21:15:37 +0300 |
commit | 00cae984f8196cdc0d436cfb54059ba939d09957 (patch) | |
tree | cc933237718201af87f7348a09c66064d0016229 | |
parent | e65ba5245aa1e67de26186a94dc34c6a7d795f9d (diff) |
Fail for manual configuring dependents with configuration clauses in pkg-configure
-rw-r--r-- | bpkg/pkg-configure.cxx | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/bpkg/pkg-configure.cxx b/bpkg/pkg-configure.cxx index 7c0f4bc..34fe269 100644 --- a/bpkg/pkg-configure.cxx +++ b/bpkg/pkg-configure.cxx @@ -76,6 +76,18 @@ namespace bpkg size_t>, 2> edas; + // If the dependency alternatives are not pre-selected, then evaluate + // the enable clauses. + // + // Note that evaluating the require and prefer clauses in this case is + // meaningless since we don't reconfigure the dependencies nor negotiate + // configurations with other dependents. What we should probably do is + // load configurations of the dependencies and use them while evaluating + // the dependent's enable and reflect clauses as we go along. Probably + // we should still evaluate the accept clauses to make sure that the + // dependency is configured acceptably for the dependent. For now we + // fail and will support this maybe later. + // if (alts == nullptr) { if (toolchain_buildtime_dependency (o, das, &ps.name ())) @@ -86,7 +98,13 @@ namespace bpkg const dependency_alternative& da (das[i]); if (!da.enable || ps.evaluate_enable (*da.enable, di)) + { + if (da.prefer || da.require) + fail << "manual configuration of dependents with prefer or " + << "require clauses is not yet supported"; + edas.push_back (make_pair (ref (da), i)); + } } if (edas.empty ()) @@ -101,7 +119,6 @@ namespace bpkg edas.push_back (make_pair (ref (das.front ()), (*alts)[di])); } - // Pick the first alternative with dependencies that can all be resolved // to the configured packages, satisfying the respective constraints. // |