handle cargo submodule in a lazy-load way

Signed-off-by: onur-ozkan <work@onurozkan.dev>
This commit is contained in:
onur-ozkan 2024-06-14 12:32:34 +03:00
parent 8c3ebf7a4d
commit 51f6e68559
3 changed files with 9 additions and 1 deletions

View file

@ -2983,6 +2983,9 @@ fn run(self, builder: &Builder<'_>) {
let compiler = builder.compiler(0, host);
let _guard = builder.msg(Kind::Test, 0, "bootstrap", host, host);
// Some tests require cargo submodule to be present.
builder.build.update_submodule(Path::new("src/tools/cargo"));
let mut check_bootstrap = Command::new(builder.python());
check_bootstrap
.args(["-m", "unittest", "bootstrap_test.py"])

View file

@ -654,6 +654,8 @@ fn make_run(run: RunConfig<'_>) {
}
fn run(self, builder: &Builder<'_>) -> PathBuf {
builder.build.update_submodule(Path::new("src/tools/cargo"));
builder.ensure(ToolBuild {
compiler: self.compiler,
target: self.target,

View file

@ -1,5 +1,5 @@
use crate::core::builder::{Builder, RunConfig, ShouldRun, Step};
use std::path::PathBuf;
use std::path::{Path, PathBuf};
use std::process::Command;
#[derive(Debug, Clone, Hash, PartialEq, Eq)]
@ -34,6 +34,9 @@ fn run(self, builder: &Builder<'_>) -> Self::Output {
cmd.arg("--versioned-dirs");
}
// cargo submodule must be present for `x vendor` to work.
builder.build.update_submodule(Path::new("src/tools/cargo"));
// Sync these paths by default.
for p in [
"src/tools/cargo/Cargo.toml",