use cfg_aliases::cfg_aliases; fn main() { // Setup alias to reduce `cfg` boilerplate. cfg_aliases! { // Systems. android_platform: { target_os = "android" }, wasm_platform: { target_family = "wasm" }, macos_platform: { target_os = "macos" }, ios_platform: { target_os = "ios" }, apple: { any(ios_platform, macos_platform) }, free_unix: { all(unix, not(apple), not(android_platform)) }, // Native displays. x11_platform: { all(feature = "x11", free_unix, not(wasm_platform)) }, wayland_platform: { all(feature = "wayland", free_unix, not(wasm_platform)) }, // Backends. egl_backend: { all(feature = "egl", any(windows, unix), not(apple), not(wasm_platform)) }, glx_backend: { all(feature = "glx", x11_platform, not(wasm_platform)) }, wgl_backend: { all(feature = "wgl", windows, not(wasm_platform)) }, cgl_backend: { all(macos_platform, not(wasm_platform)) }, } }