The build process of the unikernel HermitCore is redesigned and doesn't longer depend on libhermit.
58 lines
2.5 KiB
Rust
58 lines
2.5 KiB
Rust
use std::env;
|
|
|
|
fn main() {
|
|
let target = env::var("TARGET").expect("TARGET was not set");
|
|
if target.contains("linux") {
|
|
if target.contains("android") {
|
|
println!("cargo:rustc-link-lib=dl");
|
|
println!("cargo:rustc-link-lib=log");
|
|
println!("cargo:rustc-link-lib=gcc");
|
|
} else if !target.contains("musl") {
|
|
println!("cargo:rustc-link-lib=dl");
|
|
println!("cargo:rustc-link-lib=rt");
|
|
println!("cargo:rustc-link-lib=pthread");
|
|
}
|
|
} else if target.contains("freebsd") {
|
|
println!("cargo:rustc-link-lib=execinfo");
|
|
println!("cargo:rustc-link-lib=pthread");
|
|
} else if target.contains("netbsd") {
|
|
println!("cargo:rustc-link-lib=pthread");
|
|
println!("cargo:rustc-link-lib=rt");
|
|
} else if target.contains("dragonfly") || target.contains("openbsd") {
|
|
println!("cargo:rustc-link-lib=pthread");
|
|
} else if target.contains("solaris") {
|
|
println!("cargo:rustc-link-lib=socket");
|
|
println!("cargo:rustc-link-lib=posix4");
|
|
println!("cargo:rustc-link-lib=pthread");
|
|
println!("cargo:rustc-link-lib=resolv");
|
|
} else if target.contains("apple-darwin") {
|
|
println!("cargo:rustc-link-lib=System");
|
|
|
|
// res_init and friends require -lresolv on macOS/iOS.
|
|
// See #41582 and http://blog.achernya.com/2013/03/os-x-has-silly-libsystem.html
|
|
println!("cargo:rustc-link-lib=resolv");
|
|
} else if target.contains("apple-ios") {
|
|
println!("cargo:rustc-link-lib=System");
|
|
println!("cargo:rustc-link-lib=objc");
|
|
println!("cargo:rustc-link-lib=framework=Security");
|
|
println!("cargo:rustc-link-lib=framework=Foundation");
|
|
println!("cargo:rustc-link-lib=resolv");
|
|
} else if target.contains("uwp") {
|
|
println!("cargo:rustc-link-lib=ws2_32");
|
|
// For BCryptGenRandom
|
|
println!("cargo:rustc-link-lib=bcrypt");
|
|
} else if target.contains("windows") {
|
|
println!("cargo:rustc-link-lib=advapi32");
|
|
println!("cargo:rustc-link-lib=ws2_32");
|
|
println!("cargo:rustc-link-lib=userenv");
|
|
} else if target.contains("fuchsia") {
|
|
println!("cargo:rustc-link-lib=zircon");
|
|
println!("cargo:rustc-link-lib=fdio");
|
|
} else if target.contains("cloudabi") {
|
|
if cfg!(feature = "backtrace") {
|
|
println!("cargo:rustc-link-lib=unwind");
|
|
}
|
|
println!("cargo:rustc-link-lib=c");
|
|
println!("cargo:rustc-link-lib=compiler_rt");
|
|
}
|
|
}
|