Avoid explicit native targets enumerations

This commit is contained in:
Sergey Bogolepov
2021-04-05 17:38:59 +07:00
committed by TeamCityServer
parent 15dcb36f47
commit 790fea635d
2 changed files with 18 additions and 30 deletions
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.native.interop.gen package org.jetbrains.kotlin.native.interop.gen
import org.jetbrains.kotlin.konan.target.Architecture
import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.native.interop.indexer.* import org.jetbrains.kotlin.native.interop.indexer.*
@@ -16,20 +17,19 @@ import org.jetbrains.kotlin.native.interop.indexer.*
*/ */
internal fun Type.isStret(target: KonanTarget): Boolean { internal fun Type.isStret(target: KonanTarget): Boolean {
val unwrappedType = this.unwrapTypedefs() val unwrappedType = this.unwrapTypedefs()
val abiInfo: ObjCAbiInfo = when (target) { val abiInfo: ObjCAbiInfo = when (target.architecture) {
KonanTarget.IOS_ARM64, Architecture.ARM64 -> {
KonanTarget.TVOS_ARM64, // Currently, cinterop works with watchos_arm64 as with watchos_arm32.
KonanTarget.MACOS_ARM64 -> DarwinArm64AbiInfo() // TODO: ABI for watchos_arm64 should be revisited after LLVM update.
require(target != KonanTarget.WATCHOS_ARM64)
DarwinArm64AbiInfo()
}
KonanTarget.IOS_X64, Architecture.X64 -> DarwinX64AbiInfo()
KonanTarget.MACOS_X64,
KonanTarget.WATCHOS_X64,
KonanTarget.TVOS_X64 -> DarwinX64AbiInfo()
KonanTarget.WATCHOS_X86 -> DarwinX86AbiInfo() Architecture.X86 -> DarwinX86AbiInfo()
KonanTarget.IOS_ARM32, Architecture.ARM32 -> DarwinArm32AbiInfo(target)
KonanTarget.WATCHOS_ARM32 -> DarwinArm32AbiInfo(target)
else -> error("Cannot generate ObjC stubs for $target.") else -> error("Cannot generate ObjC stubs for $target.")
} }
@@ -37,29 +37,17 @@ class ZephyrConfigurablesImpl(target: KonanTarget, properties: Properties, baseD
: ZephyrConfigurables, KonanPropertiesLoader(target, properties, baseDir) : ZephyrConfigurables, KonanPropertiesLoader(target, properties, baseDir)
fun loadConfigurables(target: KonanTarget, properties: Properties, baseDir: String?): Configurables = when (target) { fun loadConfigurables(target: KonanTarget, properties: Properties, baseDir: String?): Configurables = when (target.family) {
KonanTarget.LINUX_X64, KonanTarget.LINUX_ARM32_HFP, KonanTarget.LINUX_ARM64, Family.LINUX -> GccConfigurablesImpl(target, properties, baseDir)
KonanTarget.LINUX_MIPS32, KonanTarget.LINUX_MIPSEL32 ->
GccConfigurablesImpl(target, properties, baseDir)
KonanTarget.MACOS_X64, KonanTarget.MACOS_ARM64, Family.TVOS, Family.WATCHOS, Family.IOS, Family.OSX -> AppleConfigurablesImpl(target, properties, baseDir)
KonanTarget.IOS_ARM32, KonanTarget.IOS_ARM64, KonanTarget.IOS_X64,
KonanTarget.TVOS_ARM64, KonanTarget.TVOS_X64,
KonanTarget.WATCHOS_ARM64, KonanTarget.WATCHOS_ARM32,
KonanTarget.WATCHOS_X64, KonanTarget.WATCHOS_X86 ->
AppleConfigurablesImpl(target, properties, baseDir)
KonanTarget.ANDROID_ARM32, KonanTarget.ANDROID_ARM64, Family.ANDROID -> AndroidConfigurablesImpl(target, properties, baseDir)
KonanTarget.ANDROID_X86, KonanTarget.ANDROID_X64 ->
AndroidConfigurablesImpl(target, properties, baseDir)
KonanTarget.MINGW_X64, KonanTarget.MINGW_X86 -> Family.MINGW -> MingwConfigurablesImpl(target, properties, baseDir)
MingwConfigurablesImpl(target, properties, baseDir)
KonanTarget.WASM32 -> Family.WASM -> WasmConfigurablesImpl(target, properties, baseDir)
WasmConfigurablesImpl(target, properties, baseDir)
is KonanTarget.ZEPHYR -> Family.ZEPHYR -> ZephyrConfigurablesImpl(target, properties, baseDir)
ZephyrConfigurablesImpl(target, properties, baseDir)
} }