]> git.lizzy.rs Git - rust.git/blob - src/libstd/build.rs
Rollup merge of #58802 - nnethercote:inline-record_layout, r=oli-obk
[rust.git] / src / libstd / build.rs
1 #![deny(warnings)]
2
3 use std::env;
4
5 fn main() {
6     let target = env::var("TARGET").expect("TARGET was not set");
7     if target.contains("linux") {
8         if target.contains("android") {
9             println!("cargo:rustc-link-lib=dl");
10             println!("cargo:rustc-link-lib=log");
11             println!("cargo:rustc-link-lib=gcc");
12         } else if !target.contains("musl") {
13             println!("cargo:rustc-link-lib=dl");
14             println!("cargo:rustc-link-lib=rt");
15             println!("cargo:rustc-link-lib=pthread");
16         }
17     } else if target.contains("freebsd") {
18         println!("cargo:rustc-link-lib=execinfo");
19         println!("cargo:rustc-link-lib=pthread");
20     } else if target.contains("netbsd") {
21         println!("cargo:rustc-link-lib=pthread");
22         println!("cargo:rustc-link-lib=rt");
23     } else if target.contains("dragonfly") || target.contains("bitrig") ||
24               target.contains("openbsd") {
25         println!("cargo:rustc-link-lib=pthread");
26     } else if target.contains("solaris") {
27         println!("cargo:rustc-link-lib=socket");
28         println!("cargo:rustc-link-lib=posix4");
29         println!("cargo:rustc-link-lib=pthread");
30         println!("cargo:rustc-link-lib=resolv");
31     } else if target.contains("apple-darwin") {
32         println!("cargo:rustc-link-lib=System");
33
34         // res_init and friends require -lresolv on macOS/iOS.
35         // See #41582 and http://blog.achernya.com/2013/03/os-x-has-silly-libsystem.html
36         println!("cargo:rustc-link-lib=resolv");
37     } else if target.contains("apple-ios") {
38         println!("cargo:rustc-link-lib=System");
39         println!("cargo:rustc-link-lib=objc");
40         println!("cargo:rustc-link-lib=framework=Security");
41         println!("cargo:rustc-link-lib=framework=Foundation");
42         println!("cargo:rustc-link-lib=resolv");
43     } else if target.contains("windows") {
44         println!("cargo:rustc-link-lib=advapi32");
45         println!("cargo:rustc-link-lib=ws2_32");
46         println!("cargo:rustc-link-lib=userenv");
47     } else if target.contains("fuchsia") {
48         println!("cargo:rustc-link-lib=zircon");
49         println!("cargo:rustc-link-lib=fdio");
50     } else if target.contains("cloudabi") {
51         if cfg!(feature = "backtrace") {
52             println!("cargo:rustc-link-lib=unwind");
53         }
54         println!("cargo:rustc-link-lib=c");
55         println!("cargo:rustc-link-lib=compiler_rt");
56     }
57 }