]> git.lizzy.rs Git - rust.git/blob - src/libstd/build.rs
Simplify SaveHandler trait
[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("openbsd") {
24         println!("cargo:rustc-link-lib=pthread");
25     } else if target.contains("solaris") {
26         println!("cargo:rustc-link-lib=socket");
27         println!("cargo:rustc-link-lib=posix4");
28         println!("cargo:rustc-link-lib=pthread");
29         println!("cargo:rustc-link-lib=resolv");
30     } else if target.contains("apple-darwin") {
31         println!("cargo:rustc-link-lib=System");
32
33         // res_init and friends require -lresolv on macOS/iOS.
34         // See #41582 and http://blog.achernya.com/2013/03/os-x-has-silly-libsystem.html
35         println!("cargo:rustc-link-lib=resolv");
36     } else if target.contains("apple-ios") {
37         println!("cargo:rustc-link-lib=System");
38         println!("cargo:rustc-link-lib=objc");
39         println!("cargo:rustc-link-lib=framework=Security");
40         println!("cargo:rustc-link-lib=framework=Foundation");
41         println!("cargo:rustc-link-lib=resolv");
42     } else if target.contains("uwp") {
43         println!("cargo:rustc-link-lib=ws2_32");
44         // For BCryptGenRandom
45         println!("cargo:rustc-link-lib=bcrypt");
46     } else if target.contains("windows") {
47         println!("cargo:rustc-link-lib=advapi32");
48         println!("cargo:rustc-link-lib=ws2_32");
49         println!("cargo:rustc-link-lib=userenv");
50     } else if target.contains("fuchsia") {
51         println!("cargo:rustc-link-lib=zircon");
52         println!("cargo:rustc-link-lib=fdio");
53     } else if target.contains("cloudabi") {
54         if cfg!(feature = "backtrace") {
55             println!("cargo:rustc-link-lib=unwind");
56         }
57         println!("cargo:rustc-link-lib=c");
58         println!("cargo:rustc-link-lib=compiler_rt");
59     }
60 }