use once_cell::sync::Lazy;
use regex::Regex;
pub(super) static MACOS_PLATFORM_RE: Lazy<Regex> =
Lazy::new(|| Regex::new(r"^macosx_(?P<major>\d+)_(?:\d+)_(?P<arch>.+)$").unwrap());
pub(super) static IOS_PLATFORM_RE: Lazy<Regex> = Lazy::new(|| {
Regex::new(r"^ios_(?:\d+)_(?:\d+)_(?P<arch>.+)_(?:iphoneos|iphonesimulator)$").unwrap()
});
pub(super) static ANDROID_PLATFORM_RE: Lazy<Regex> =
Lazy::new(|| Regex::new(r"^android_(?:\d+)_(?P<arch>.+)$").unwrap());
pub(super) static LINUX_PLATFORM_RE: Lazy<Regex> = Lazy::new(|| {
Regex::new(r"^(?P<libc>(?:many|musl))linux_(?:\d+)_(?:\d+)_(?P<arch>.+)$").unwrap()
});
pub(super) static ALLOWED_PLATFORMS: &[&str] = &[
"any",
"win32",
"win_arm64",
"win_amd64",
"win_ia64",
"manylinux1_x86_64",
"manylinux1_i686",
"manylinux2010_x86_64",
"manylinux2010_i686",
"manylinux2014_x86_64",
"manylinux2014_i686",
"manylinux2014_aarch64",
"manylinux2014_armv7l",
"manylinux2014_ppc64",
"manylinux2014_ppc64le",
"manylinux2014_s390x",
"linux_armv6l",
"linux_armv7l",
];
pub(super) static WINDOWS_ARCHES: &[&str] = &["x86_64", "i686", "aarch64"];
pub(super) static MACOS_ARCHES: &[&str] = &["x86_64", "arm64", "i686", "universal2"];
pub(super) static MACOS_MAJOR_VERSIONS: &[&str] = &["10", "11", "12", "13", "14", "15"];
pub(super) static IOS_ARCHES: &[&str] = &["arm64", "x86_64"];
pub(super) static ANDROID_ARCHES: &[&str] = &["armeabi_v7a", "arm64_v8a", "x86", "x86_64"];
pub(super) static MANYLINUX_ARCHES: &[&str] = &[
"x86_64", "i686", "aarch64", "armv7l", "ppc64le", "s390x", "ppc64", "riscv64",
];
pub(super) static MUSLLINUX_ARCHES: &[&str] =
&["x86_64", "i686", "aarch64", "armv7l", "ppc64le", "s390x"];