Files
revive/crates/lld-sys/build.rs
T
2024-04-15 16:12:05 +02:00

29 lines
869 B
Rust

fn llvm_config(arg: &str) -> String {
let output = std::process::Command::new("llvm-config")
.args([arg])
.output()
.unwrap_or_else(|_| panic!("`llvm-config {arg}` failed"));
String::from_utf8(output.stdout)
.unwrap_or_else(|_| panic!("output of `llvm-config {arg}` should be utf8"))
}
fn main() {
let mut builder = cc::Build::new();
llvm_config("--cxxflags")
.split_whitespace()
.fold(&mut builder, |builder, flag| builder.flag(flag))
.flag("-Wno-unused-parameter")
.cpp(true)
.file("src/linker.cpp")
.compile("liblinker.a");
println!("cargo:rustc-link-search=native={}", llvm_config("--libdir"));
for lib in ["lldELF", "lldCommon", "lldMachO"] {
println!("cargo:rustc-link-lib=static={lib}");
}
println!("cargo:rerun-if-changed=build.rs");
}