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)]
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);
+ let src_path = llvm_bin_dir.join(&tool_exe);
+ // When using `donwload-ci-llvm`, some of the tools
+ // may not exist, so skip trying to copy them.
+ if src_path.exists() {
+ builder.copy(&src_path, &libdir_bin.join(&tool_exe));
+ }
+ }
}
}