Add bootstrap support for rust-installer
This commit is contained in:
parent
8d9cef4709
commit
ddc2d1e806
@ -711,6 +711,7 @@ macro_rules! describe {
|
|||||||
test::RustdocUi,
|
test::RustdocUi,
|
||||||
test::RustdocJson,
|
test::RustdocJson,
|
||||||
test::HtmlCheck,
|
test::HtmlCheck,
|
||||||
|
test::RustInstaller,
|
||||||
// Run bootstrap close to the end as it's unlikely to fail
|
// Run bootstrap close to the end as it's unlikely to fail
|
||||||
test::Bootstrap,
|
test::Bootstrap,
|
||||||
// Run run-make last, since these won't pass without make on Windows
|
// Run run-make last, since these won't pass without make on Windows
|
||||||
|
@ -482,12 +482,7 @@ pub fn new(mut config: Config) -> Build {
|
|||||||
|
|
||||||
// Make sure we update these before gathering metadata so we don't get an error about missing
|
// Make sure we update these before gathering metadata so we don't get an error about missing
|
||||||
// Cargo.toml files.
|
// Cargo.toml files.
|
||||||
let rust_submodules = [
|
let rust_submodules = ["src/tools/cargo", "library/backtrace", "library/stdarch"];
|
||||||
"src/tools/rust-installer",
|
|
||||||
"src/tools/cargo",
|
|
||||||
"library/backtrace",
|
|
||||||
"library/stdarch",
|
|
||||||
];
|
|
||||||
for s in rust_submodules {
|
for s in rust_submodules {
|
||||||
build.update_submodule(Path::new(s));
|
build.update_submodule(Path::new(s));
|
||||||
}
|
}
|
||||||
|
@ -2695,3 +2695,58 @@ fn run(self, builder: &Builder<'_>) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
|
||||||
|
pub struct RustInstaller;
|
||||||
|
|
||||||
|
impl Step for RustInstaller {
|
||||||
|
type Output = ();
|
||||||
|
const ONLY_HOSTS: bool = true;
|
||||||
|
const DEFAULT: bool = true;
|
||||||
|
|
||||||
|
/// Ensure the version placeholder replacement tool builds
|
||||||
|
fn run(self, builder: &Builder<'_>) {
|
||||||
|
builder.info("test rust-installer");
|
||||||
|
|
||||||
|
let bootstrap_host = builder.config.build;
|
||||||
|
let compiler = builder.compiler(0, bootstrap_host);
|
||||||
|
let cargo = tool::prepare_tool_cargo(
|
||||||
|
builder,
|
||||||
|
compiler,
|
||||||
|
Mode::ToolBootstrap,
|
||||||
|
bootstrap_host,
|
||||||
|
"test",
|
||||||
|
"src/tools/rust-installer",
|
||||||
|
SourceType::InTree,
|
||||||
|
&[],
|
||||||
|
);
|
||||||
|
try_run(builder, &mut cargo.into());
|
||||||
|
|
||||||
|
// We currently don't support running the test.sh script outside linux(?) environments.
|
||||||
|
// Eventually this should likely migrate to #[test]s in rust-installer proper rather than a
|
||||||
|
// set of scripts, which will likely allow dropping this if.
|
||||||
|
if bootstrap_host != "x86_64-unknown-linux-gnu" {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut cmd =
|
||||||
|
std::process::Command::new(builder.src.join("src/tools/rust-installer/test.sh"));
|
||||||
|
let tmpdir = testdir(builder, compiler.host).join("rust-installer");
|
||||||
|
let _ = std::fs::remove_dir_all(&tmpdir);
|
||||||
|
let _ = std::fs::create_dir_all(&tmpdir);
|
||||||
|
cmd.current_dir(&tmpdir);
|
||||||
|
cmd.env("CARGO_TARGET_DIR", tmpdir.join("cargo-target"));
|
||||||
|
cmd.env("CARGO", &builder.initial_cargo);
|
||||||
|
cmd.env("RUSTC", &builder.initial_rustc);
|
||||||
|
cmd.env("TMP_DIR", &tmpdir);
|
||||||
|
try_run(builder, &mut cmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
|
||||||
|
run.path("src/tools/rust-installer")
|
||||||
|
}
|
||||||
|
|
||||||
|
fn make_run(run: RunConfig<'_>) {
|
||||||
|
run.builder.ensure(Self);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -21,4 +21,4 @@ abs_path() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
src_dir="$(abs_path $(dirname "$0"))"
|
src_dir="$(abs_path $(dirname "$0"))"
|
||||||
cargo run --manifest-path="$src_dir/Cargo.toml" -- combine "$@"
|
$CARGO run --manifest-path="$src_dir/Cargo.toml" -- combine "$@"
|
||||||
|
@ -21,4 +21,4 @@ abs_path() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
src_dir="$(abs_path $(dirname "$0"))"
|
src_dir="$(abs_path $(dirname "$0"))"
|
||||||
cargo run --manifest-path="$src_dir/Cargo.toml" -- generate "$@"
|
$CARGO run --manifest-path="$src_dir/Cargo.toml" -- generate "$@"
|
||||||
|
@ -21,4 +21,4 @@ abs_path() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
src_dir="$(abs_path $(dirname "$0"))"
|
src_dir="$(abs_path $(dirname "$0"))"
|
||||||
cargo run --manifest-path="$src_dir/Cargo.toml" -- tarball "$@"
|
$CARGO run --manifest-path="$src_dir/Cargo.toml" -- tarball "$@"
|
||||||
|
@ -20,7 +20,6 @@ abs_path() {
|
|||||||
S="$(abs_path $(dirname $0))"
|
S="$(abs_path $(dirname $0))"
|
||||||
|
|
||||||
TEST_DIR="$S/test"
|
TEST_DIR="$S/test"
|
||||||
TMP_DIR="$S/tmp"
|
|
||||||
WORK_DIR="$TMP_DIR/workdir"
|
WORK_DIR="$TMP_DIR/workdir"
|
||||||
OUT_DIR="$TMP_DIR/outdir"
|
OUT_DIR="$TMP_DIR/outdir"
|
||||||
PREFIX_DIR="$TMP_DIR/prefix"
|
PREFIX_DIR="$TMP_DIR/prefix"
|
||||||
|
Loading…
Reference in New Issue
Block a user