Some checks failed
Weekly OSV dependency audit / dependency-audit (push) Failing after 6s
- Add the Rust target library directory to the Linux debug CLI rpath - Test that the built CLI runs without `LD_LIBRARY_PATH`
31 lines
962 B
Rust
31 lines
962 B
Rust
use std::{env, process::Command};
|
|
|
|
fn main() {
|
|
println!("cargo:rerun-if-env-changed=RUSTC");
|
|
|
|
if env::var("CARGO_CFG_TARGET_OS").as_deref() != Ok("linux")
|
|
|| env::var("PROFILE").as_deref() != Ok("debug")
|
|
{
|
|
return;
|
|
}
|
|
|
|
let rustc = env::var_os("RUSTC").unwrap_or_else(|| "rustc".into());
|
|
let target = env::var("TARGET").expect("Cargo must provide the build target");
|
|
let output = Command::new(rustc)
|
|
.args(["--target", &target, "--print", "target-libdir"])
|
|
.output()
|
|
.expect("query Rust target library directory");
|
|
assert!(
|
|
output.status.success(),
|
|
"rustc --print target-libdir failed: {}",
|
|
String::from_utf8_lossy(&output.stderr)
|
|
);
|
|
let target_libdir =
|
|
String::from_utf8(output.stdout).expect("Rust target library directory must be UTF-8");
|
|
|
|
println!(
|
|
"cargo:rustc-link-arg-bin=bds-cli=-Wl,-rpath,{}",
|
|
target_libdir.trim()
|
|
);
|
|
}
|