Add support Apple M1 for KMP embedAndSign task.

#KT-47077
This commit is contained in:
Konstantin Tskhovrebov
2021-07-05 18:53:46 +03:00
committed by TeamCityServer
parent a0e003ac5d
commit 8012eb3214
2 changed files with 16 additions and 6 deletions
@@ -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) {
@@ -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
}
}