mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 06:44:35 +00:00
Rollup merge of #91685 - Aaron1011:install-llvm-tools, r=Mark-Simulacrum
Install llvm tools to sysroot when assembling local toolchain Some projects (e.g. the `bootimage` crate) may require the user to install the `llvm-tools-preview` rustup component. However, this cannot be easily done with a locally built toolchain. To allow a local toolchain to be used a drop-in replacement for a normal rustup toolchain in more cases, this PR copies the built LLVM tools to the sysoot. From the perspective a tool looking at the sysroot, this is equivalent to installing `llvm-tools-preview`.
This commit is contained in:
commit
ab92eca612
@ -28,6 +28,7 @@ use crate::dist;
|
||||
use crate::native;
|
||||
use crate::tool::SourceType;
|
||||
use crate::util::{exe, is_debug_info, is_dylib, symlink_dir};
|
||||
use crate::LLVM_TOOLS;
|
||||
use crate::{Compiler, DependencyType, GitRepo, Mode};
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, Copy, Clone, PartialEq, Eq, Hash)]
|
||||
@ -1164,6 +1165,16 @@ impl Step for Assemble {
|
||||
let llvm_bin_dir = output(Command::new(llvm_config_bin).arg("--bindir"));
|
||||
let llvm_bin_dir = Path::new(llvm_bin_dir.trim());
|
||||
builder.copy(&llvm_bin_dir.join(&src_exe), &libdir_bin.join(&dst_exe));
|
||||
|
||||
// Since we've already built the LLVM tools, install them to the sysroot.
|
||||
// This is the equivalent of installing the `llvm-tools-preview` component via
|
||||
// rustup, and lets developers use a locally built toolchain to
|
||||
// build projects that expect llvm tools to be present in the sysroot
|
||||
// (e.g. the `bootimage` crate).
|
||||
for tool in LLVM_TOOLS {
|
||||
let tool_exe = exe(tool, target_compiler.host);
|
||||
builder.copy(&llvm_bin_dir.join(&tool_exe), &libdir_bin.join(&tool_exe));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user