aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bbot/worker/worker.cxx13
1 files changed, 12 insertions, 1 deletions
diff --git a/bbot/worker/worker.cxx b/bbot/worker/worker.cxx
index 81204bd..f5d9cb9 100644
--- a/bbot/worker/worker.cxx
+++ b/bbot/worker/worker.cxx
@@ -921,6 +921,17 @@ build (size_t argc, const char* argv[])
path mf (pkg_config / pkg_dir / "manifest");
package_manifest pm (parse_manifest<package_manifest> (mf, "package"));
+ // A build system module that requires bootstrap must be explicitly marked
+ // with `requires: bootstrap`.
+ //
+ bool bootstrap (module &&
+ find_if (pm.requirements.begin (),
+ pm.requirements.end (),
+ [] (const requirement_alternatives& r)
+ {
+ return r.size () == 1 && r[0] == "bootstrap";
+ }) != pm.requirements.end ());
+
// Run the package external tests, if specified. But first filter them
// against the test-exclude task manifest values using the package names.
//
@@ -1033,7 +1044,7 @@ build (size_t argc, const char* argv[])
return true;
};
- if (internal_tests || external_tests)
+ if ((internal_tests || external_tests) && !bootstrap) //@@ TMP
{
operation_result& r (test_result != nullptr
? *test_result