Updated OS detection for new arch types

This commit is contained in:
Robinson 2022-03-04 23:30:31 +01:00
parent 51157136a9
commit 886a32bc2f
No known key found for this signature in database
GPG Key ID: 8E7DB78588BD6F5C

View File

@ -63,45 +63,59 @@ object OS {
val isAndroid = "Dalvik" == value val isAndroid = "Dalvik" == value
if (isAndroid) { if (isAndroid) {
// android check from https://stackoverflow.com/questions/14859954/android-os-arch-output-for-arm-mips-x86 // android check from https://stackoverflow.com/questions/14859954/android-os-arch-output-for-arm-mips-x86
when (osArch) { osType = when (osArch) {
"armeabi" -> { "armeabi" -> {
// really old/low-end non-hf 32bit cpu OSType.AndroidArm56 // really old/low-end non-hf 32bit cpu
osType = OSType.AndroidArm56
} }
"armeabi-v7a" -> { "armeabi-v7a" -> {
// 32bit hf cpu OSType.AndroidArm7 // 32bit hf cpu
osType = OSType.AndroidArm7
} }
"arm64-v8a" -> { "arm64-v8a" -> {
// 64bit hf cpu OSType.AndroidArm8 // 64bit hf cpu
osType = OSType.AndroidArm8
} }
"x86" -> { "x86" -> {
// 32bit x86 (usually emulator) OSType.AndroidX86 // 32bit x86 (usually emulator)
osType = OSType.AndroidX86
} }
"x86_64" -> { "x86_64" -> {
// 64bit x86 (usually emulator) OSType.AndroidX86_64 // 64bit x86 (usually emulator)
osType = OSType.AndroidX86_64
} }
"mips" -> { "mips" -> {
// 32bit mips OSType.AndroidMips // 32bit mips
osType = OSType.AndroidMips
} }
"mips64" -> { "mips64" -> {
// 64bit mips OSType.AndroidMips64 // 64bit mips
osType = OSType.AndroidMips64
} }
else -> { else -> {
// who knows? null // who knows?
osType = null
} }
} }
} else { } else {
when { // http://mail.openjdk.java.net/pipermail/jigsaw-dev/2017-April/012107.html
osType = when {
osArch == "i386" -> {
OSType.Linux32
}
osArch == "x86" -> {
OSType.Linux32
}
osArch == "arm" -> {
OSType.LinuxArm32
}
osArch == "amd64" -> { osArch == "amd64" -> {
// normal linux 32/64/arm32/arm64 OSType.Linux64
osType = OSType.Linux64 }
osArch == "x86_64" -> {
OSType.Linux64
}
osArch == "aarch64" -> {
OSType.LinuxArm64
}
// oddballs (android usually)
osArch.startsWith("arm64") -> {
OSType.LinuxArm64
} }
osArch.startsWith("arm") -> { osArch.startsWith("arm") -> {
if (osArch.contains("v8")) { if (osArch.contains("v8")) {
@ -121,7 +135,7 @@ object OS {
} else { } else {
OSType.Windows32 OSType.Windows32
} }
} else if (osName.startsWith("mac") || osName.startsWith("darwin")) { } else if (osName.startsWith("macos") || osName.startsWith("darwin")) {
osType = if ("x86_64" == osArch) { osType = if ("x86_64" == osArch) {
OSType.MacOsX64 OSType.MacOsX64
} else { } else {