.arg(builder.src.join("./src/tools/rust-analyzer/Cargo.toml"))
.arg("--sync")
.arg(builder.src.join("./compiler/rustc_codegen_cranelift/Cargo.toml"))
+ .arg("--sync")
+ .arg(builder.src.join("./src/bootstrap/Cargo.toml"))
.current_dir(&plain_dst_src);
- builder.run(&mut cmd);
+
+ let config = if !builder.config.dry_run {
+ t!(String::from_utf8(t!(cmd.output()).stdout))
+ } else {
+ String::new()
+ };
+
+ let cargo_config_dir = plain_dst_src.join(".cargo");
+ builder.create_dir(&cargo_config_dir);
+ builder.create(&cargo_config_dir.join("config.toml"), &config);
}
tarball.bare()
}
fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
- // This prevents rust-analyzer from being built for "dist" or "install"
- // on the stable/beta channels. It is a nightly-only tool and should
- // not be included.
- if !builder.build.unstable_features() {
- return None;
- }
let compiler = self.compiler;
let target = self.target;
let mut tarball = Tarball::new(builder, "rust-dev", &target.triple);
tarball.set_overlay(OverlayKind::LLVM);
+ builder.ensure(crate::native::Llvm { target });
+
let src_bindir = builder.llvm_out(target).join("bin");
// If updating this list, you likely want to change
// src/bootstrap/download-ci-llvm-stamp as well, otherwise local users