diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AppleFrameworkIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AppleFrameworkIT.kt index 7edcc06d05c..cf09303e0c4 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AppleFrameworkIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AppleFrameworkIT.kt @@ -33,7 +33,8 @@ class AppleFrameworkIT : BaseGradleIT() { val options: BuildOptions = defaultBuildOptions().copy( customEnvironmentVariables = mapOf( "CONFIGURATION" to "debug", - "SDK_NAME" to "iphoneos123" + "SDK_NAME" to "iphoneos123", + "NATIVE_ARCH" to "armv7" ) ) build("assembleDebugAppleFrameworkForXcodeIosArm64", options = options) { @@ -72,6 +73,7 @@ class AppleFrameworkIT : BaseGradleIT() { customEnvironmentVariables = mapOf( "CONFIGURATION" to "Debug", "SDK_NAME" to "iphoneos", + "NATIVE_ARCH" to "armv7", "EXPANDED_CODE_SIGN_IDENTITY" to "-", "TARGET_BUILD_DIR" to "testBuildDir", "FRAMEWORKS_FOLDER_PATH" to "testFrameworksDir" @@ -103,7 +105,8 @@ class AppleFrameworkIT : BaseGradleIT() { val options: BuildOptions = defaultBuildOptions().copy( customEnvironmentVariables = mapOf( "CONFIGURATION" to "Debug", - "SDK_NAME" to "iphoneos" + "SDK_NAME" to "iphoneos", + "NATIVE_ARCH" to "armv7" ) ) build("tasks", options = options) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt index 55c9824cef0..d20537e8fc1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt @@ -37,15 +37,22 @@ private object XcodeEnvironment { val target: KonanTarget? get() { val sdk = System.getenv("SDK_NAME") ?: return null + val isForArm = System.getenv("NATIVE_ARCH")?.startsWith("arm") ?: false - //todo support simulator architecture for Apple Silicon - return when { + return if (isForArm) when { sdk.startsWith("iphoneos") -> KonanTarget.IOS_ARM64 - sdk.startsWith("iphonesimulator") -> KonanTarget.IOS_X64 + sdk.startsWith("iphonesimulator") -> KonanTarget.IOS_SIMULATOR_ARM64 sdk.startsWith("watchos") -> KonanTarget.WATCHOS_ARM64 - sdk.startsWith("watchsimulator") -> KonanTarget.WATCHOS_X64 + sdk.startsWith("watchsimulator") -> KonanTarget.WATCHOS_SIMULATOR_ARM64 sdk.startsWith("appletvos") -> KonanTarget.TVOS_ARM64 + sdk.startsWith("appletvsimulator") -> KonanTarget.TVOS_SIMULATOR_ARM64 + sdk.startsWith("macosx") -> KonanTarget.MACOS_ARM64 + else -> null + } else when { + sdk.startsWith("iphonesimulator") -> KonanTarget.IOS_X64 + sdk.startsWith("watchsimulator") -> KonanTarget.WATCHOS_X64 sdk.startsWith("appletvsimulator") -> KonanTarget.TVOS_X64 + sdk.startsWith("macosx") -> KonanTarget.MACOS_X64 else -> null } }