fn main() {
    cfg_aliases::cfg_aliases! {
        windows_linux_android: { any(windows, target_os = "linux", target_os = "android") },
        send_sync: { all(
            feature = "std",
            any(
                not(target_arch = "wasm32"),
                all(feature = "fragile-send-sync-non-atomic-wasm", not(target_feature = "atomics"))
            )
        ) },
        dx12: { all(target_os = "windows", feature = "dx12") },
        webgl: { all(target_arch = "wasm32", not(target_os = "emscripten"), feature = "webgl") },
        gles: { any(
            all(windows_linux_android, feature = "gles"), // Regular GLES
            all(webgl), // WebGL
            all(target_os = "emscripten", feature = "gles"), // Emscripten GLES
            all(target_vendor = "apple", feature = "angle") // ANGLE on Apple
        ) },
        vulkan: { any(
            all(windows_linux_android, feature = "vulkan"), // Regular Vulkan
            all(target_vendor = "apple", feature = "vulkan-portability") // Vulkan Portability on Apple
        ) },
        metal: { all(target_vendor = "apple", feature = "metal") },

        supports_64bit_atomics: { target_has_atomic = "64" }
    }
}
