fn main() {
let target = std::env::var("TARGET").unwrap();
if target.contains("darwin") {
cc::Build::new()
.flag("-fmodules")
.flag("-O3")
.flag("-Wall")
.flag("-Werror")
.flag("-pedantic")
.flag("-Wno-unused-parameter")
.flag("-mmacosx-version-min=10.10")
.file("src/native/macos.m")
.compile("native.a");
} else if target.contains("x86_64-apple-ios") {
cc::Build::new()
.flag("-fmodules")
.flag("-O3")
.flag("-Wall")
.flag("-Werror")
.flag("-pedantic")
.flag("-Wno-unused-parameter")
.flag("-mios-simulator-version-min=13.0")
.file("src/native/ios.m")
.compile("native.a");
} else if target.contains("aarch64-apple-ios") {
cc::Build::new()
.flag("-fmodules")
.flag("-O3")
.flag("-Wall")
.flag("-Werror")
.flag("-pedantic")
.flag("-Wno-unused-parameter")
.file("src/native/ios.m")
.compile("native.a");
} else if target.contains("windows") {
cc::Build::new()
.flag("-Wall")
.file("src/native/win32.c")
.compile("native.a");
println!("cargo:rustc-link-lib=user32");
println!("cargo:rustc-link-lib=d3d11");
println!("cargo:rustc-link-lib=dxguid");
println!("cargo:rustc-link-lib=dsound");
println!("cargo:rustc-link-lib=xinput");
} else if target.contains("android") {
cc::Build::new()
.flag("-O3")
.flag("-Wall")
.flag("-Werror")
.file("src/native/android.c")
.compile("native.a");
} else if target.contains("linux") {
cc::Build::new()
.flag("-O3")
.flag("-Wall")
.flag("-Werror")
.flag("-Wl,-s")
.flag("-Wno-unused-parameter")
.flag("-Wno-unused-but-set-variable")
.file("src/native/x11.c")
.compile("native.a");
println!("cargo:rustc-link-lib=X11");
println!("cargo:rustc-link-lib=EGL");
println!("cargo:rustc-link-lib=GL");
println!("cargo:rustc-link-lib=asound");
}
}