use std::env;
fn build_windows() {
#[cfg(windows)]
windows::build!(
windows::win32::windows_programming::{GetUserNameA, GetComputerNameExA, GetTickCount64},
windows::win32::system_services::{GlobalMemoryStatusEx, GetSystemPowerStatus},
);
}
fn build_macos() {
println!("cargo:rustc-link-lib=framework=Foundation");
println!("cargo:rustc-link-lib=framework=IOKit");
}
fn build_android() {
println!("cargo:rerun-if-changed=src/android/system_properties.h");
let bindings = bindgen::Builder::default()
.header("src/android/system_properties.h")
.parse_callbacks(Box::new(bindgen::CargoCallbacks))
.generate()
.expect("Unable to generate bindings");
let out_path = std::path::PathBuf::from(env::var("OUT_DIR").unwrap());
bindings
.write_to_file(out_path.join("system_properties.rs"))
.expect("Couldn't write bindings!");
}
fn main() {
match env::var("CARGO_CFG_TARGET_OS").as_ref().map(|x| &**x) {
Ok("macos") => build_macos(),
Ok("windows") => build_windows(),
Ok("android") => build_android(),
_ => {}
}
}