diff options
-rw-r--r-- | bbot/worker/worker.cxx | 25 |
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 ()) |