aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bbot/worker/worker.cxx25
1 files changed, 9 insertions, 16 deletions
diff --git a/bbot/worker/worker.cxx b/bbot/worker/worker.cxx
index 1573d0f..686bab9 100644
--- a/bbot/worker/worker.cxx
+++ b/bbot/worker/worker.cxx
@@ -595,7 +595,9 @@ build (size_t argc, const char* argv[])
// Query the project's build system information with `b info`.
//
- auto prj_info = [&trace] (const dir_path& d, const char* what)
+ auto prj_info = [&trace] (const dir_path& d,
+ bool ext_mods,
+ const char* what)
{
// Note that the `b info` diagnostics won't be copied into any of the
// build logs. This is fine as this is likely to be an infrastructure
@@ -605,7 +607,7 @@ build (size_t argc, const char* argv[])
//
try
{
- return b_info (d, verb, trace);
+ return b_info (d, ext_mods, verb, trace);
}
catch (const b_error& e)
{
@@ -780,7 +782,7 @@ build (size_t argc, const char* argv[])
// Run the package internal tests if the test operation is supported by
// the project.
//
- prj = prj_info (pkg_dir, "project");
+ prj = prj_info (pkg_dir, true /* ext_mods */, "project");
if (find (prj.operations.begin (), prj.operations.end (), "test") !=
prj.operations.end ())
@@ -949,7 +951,7 @@ build (size_t argc, const char* argv[])
internal_tests = false;
else
{
- prj = prj_info (pkg_dir, "project");
+ prj = prj_info (pkg_dir, true /* ext_mods */, "project");
internal_tests = find (prj.operations.begin (),
prj.operations.end (),
@@ -1012,17 +1014,6 @@ build (size_t argc, const char* argv[])
//
// bpkg.configure.build
//
- // @@ Note that this currently fails for packages that use modules
- // requiring bootstrap that come from git repositories (unless
- // special measures are taken to omit the module for info and dist
- // meta-oprations) since the package checkout involves build2 dist
- // meta-operation to which the import variable override is not
- // passed (it is supposed to be passed later, when the checked out
- // package is being configured). This issue should be gone when
- // bpkg is fixed to run the build2 dist meta-operation in some
- // special (not yet implemented) "bootstrap" mode which doesn't
- // load the project.
- //
r.status |= run_bpkg (
envvars,
trace, r.log, wre,
@@ -1214,7 +1205,9 @@ build (size_t argc, const char* argv[])
// Retrieve the subproject information similar to how we've done it
// for the package.
//
- b_project_info si (prj_info (pkg_dir / sp.path, "subproject"));
+ b_project_info si (prj_info (pkg_dir / sp.path,
+ true /* ext_mods */,
+ "subproject"));
const strings& ops (si.operations);
if (find (ops.begin (), ops.end (), "test") != ops.end ())