1mod build;
2pub use build::build;
3
4pub fn out_dir() -> &'static str {
5 std::env!("OUT_DIR")
6}
7
8pub fn print_cargo_link() {
9 print_cargo_link_from(out_dir())
10}
11
12pub fn print_cargo_link_from(dst: &str) {
16 #[cfg(all(windows, debug_assertions))]
17 println!("cargo:rustc-link-lib=dylib=msvcrtd");
19
20 println!("cargo:rustc-link-search=native={}/lib", dst);
21 println!("cargo:rustc-link-search=native={}/build/third_party", dst);
22 println!(
23 "cargo:rustc-link-search=native={}/build/third_party/brotli",
24 dst
25 );
26 println!(
27 "cargo:rustc-link-search=native={}/build/third_party/highway",
28 dst
29 );
30
31 if cfg!(windows) {
32 println!("cargo:rustc-link-lib=static=jxl-static");
33 println!("cargo:rustc-link-lib=static=jxl_threads-static");
34 } else {
35 println!("cargo:rustc-link-lib=static=jxl");
36 println!("cargo:rustc-link-lib=static=jxl_threads");
37 }
38 println!("cargo:rustc-link-lib=static=brotlicommon-static");
39 println!("cargo:rustc-link-lib=static=brotlidec-static");
40 println!("cargo:rustc-link-lib=static=brotlienc-static");
41 println!("cargo:rustc-link-lib=static=hwy");
42
43 #[cfg(not(windows))]
44 println!("cargo:rustc-link-lib=dylib=stdc++");
46}
47
48#[cfg(test)]
49mod tests {
50 #[test]
51 fn test_print() {
52 super::print_cargo_link();
53 }
54}