diff --git a/kotlin-native/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/AbiSpecific.kt b/kotlin-native/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/AbiSpecific.kt index 50d5d96cb61..cf2c50143f9 100644 --- a/kotlin-native/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/AbiSpecific.kt +++ b/kotlin-native/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/AbiSpecific.kt @@ -5,6 +5,7 @@ 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.native.interop.indexer.* @@ -16,20 +17,19 @@ import org.jetbrains.kotlin.native.interop.indexer.* */ internal fun Type.isStret(target: KonanTarget): Boolean { val unwrappedType = this.unwrapTypedefs() - val abiInfo: ObjCAbiInfo = when (target) { - KonanTarget.IOS_ARM64, - KonanTarget.TVOS_ARM64, - KonanTarget.MACOS_ARM64 -> DarwinArm64AbiInfo() + val abiInfo: ObjCAbiInfo = when (target.architecture) { + Architecture.ARM64 -> { + // Currently, cinterop works with watchos_arm64 as with watchos_arm32. + // TODO: ABI for watchos_arm64 should be revisited after LLVM update. + require(target != KonanTarget.WATCHOS_ARM64) + DarwinArm64AbiInfo() + } - KonanTarget.IOS_X64, - KonanTarget.MACOS_X64, - KonanTarget.WATCHOS_X64, - KonanTarget.TVOS_X64 -> DarwinX64AbiInfo() + Architecture.X64 -> DarwinX64AbiInfo() - KonanTarget.WATCHOS_X86 -> DarwinX86AbiInfo() + Architecture.X86 -> DarwinX86AbiInfo() - KonanTarget.IOS_ARM32, - KonanTarget.WATCHOS_ARM32 -> DarwinArm32AbiInfo(target) + Architecture.ARM32 -> DarwinArm32AbiInfo(target) else -> error("Cannot generate ObjC stubs for $target.") } diff --git a/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ConfigurablesImpl.kt b/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ConfigurablesImpl.kt index efc8b8e0aba..1089c0087f9 100644 --- a/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ConfigurablesImpl.kt +++ b/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ConfigurablesImpl.kt @@ -37,29 +37,17 @@ class ZephyrConfigurablesImpl(target: KonanTarget, properties: Properties, baseD : ZephyrConfigurables, KonanPropertiesLoader(target, properties, baseDir) -fun loadConfigurables(target: KonanTarget, properties: Properties, baseDir: String?): Configurables = when (target) { - KonanTarget.LINUX_X64, KonanTarget.LINUX_ARM32_HFP, KonanTarget.LINUX_ARM64, - KonanTarget.LINUX_MIPS32, KonanTarget.LINUX_MIPSEL32 -> - GccConfigurablesImpl(target, properties, baseDir) +fun loadConfigurables(target: KonanTarget, properties: Properties, baseDir: String?): Configurables = when (target.family) { + Family.LINUX -> GccConfigurablesImpl(target, properties, baseDir) - KonanTarget.MACOS_X64, KonanTarget.MACOS_ARM64, - 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) + Family.TVOS, Family.WATCHOS, Family.IOS, Family.OSX -> AppleConfigurablesImpl(target, properties, baseDir) - KonanTarget.ANDROID_ARM32, KonanTarget.ANDROID_ARM64, - KonanTarget.ANDROID_X86, KonanTarget.ANDROID_X64 -> - AndroidConfigurablesImpl(target, properties, baseDir) + Family.ANDROID -> AndroidConfigurablesImpl(target, properties, baseDir) - KonanTarget.MINGW_X64, KonanTarget.MINGW_X86 -> - MingwConfigurablesImpl(target, properties, baseDir) + Family.MINGW -> MingwConfigurablesImpl(target, properties, baseDir) - KonanTarget.WASM32 -> - WasmConfigurablesImpl(target, properties, baseDir) + Family.WASM -> WasmConfigurablesImpl(target, properties, baseDir) - is KonanTarget.ZEPHYR -> - ZephyrConfigurablesImpl(target, properties, baseDir) + Family.ZEPHYR -> ZephyrConfigurablesImpl(target, properties, baseDir) }