use cfg_aliases::cfg_aliases; fn main() { cfg_aliases! { android: { target_os = "android" }, dragonfly: { target_os = "dragonfly" }, ios: { target_os = "ios" }, freebsd: { target_os = "freebsd" }, illumos: { target_os = "illumos" }, linux: { target_os = "linux" }, macos: { target_os = "macos" }, netbsd: { target_os = "netbsd" }, openbsd: { target_os = "openbsd" }, solaris: { target_os = "solaris" }, watchos: { target_os = "watchos" }, tvos: { target_os = "tvos" }, visionos: { target_os = "visionos" }, // cfg aliases we would like to use apple_targets: { any(ios, macos, watchos, tvos, visionos) }, bsd: { any(freebsd, dragonfly, netbsd, openbsd, apple_targets) }, bsd_without_apple: { any(freebsd, dragonfly, netbsd, openbsd) }, linux_android: { any(android, linux) }, freebsdlike: { any(dragonfly, freebsd) }, netbsdlike: { any(netbsd, openbsd) }, solarish: { any(illumos, solaris) }, } // Below are Nix's custom cfg values that we need to let the compiler know println!("cargo:rustc-check-cfg=cfg(apple_targets)"); println!("cargo:rustc-check-cfg=cfg(bsd)"); println!("cargo:rustc-check-cfg=cfg(bsd_without_apple)"); println!("cargo:rustc-check-cfg=cfg(linux_android)"); println!("cargo:rustc-check-cfg=cfg(freebsdlike)"); println!("cargo:rustc-check-cfg=cfg(netbsdlike)"); println!("cargo:rustc-check-cfg=cfg(solarish)"); println!("cargo:rustc-check-cfg=cfg(fbsd14)"); println!("cargo:rustc-check-cfg=cfg(qemu)"); }