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