From 1b64583855450c7f8a304c8d4b01c85f1bb39ecf Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Thu, 19 Sep 2019 14:53:14 +0700 Subject: [PATCH] Gradle, native: Embed bitcode for watchOS and tvOS --- .../kotlin/gradle/targets/native/NativeBinaries.kt | 7 +------ .../gradle/targets/native/NativeBinaryTypes.kt | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt index f56acf2bbfe..3371f73f349 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt @@ -215,12 +215,7 @@ class Framework( /** * Embed bitcode for the framework or not. See [BitcodeEmbeddingMode]. */ - var embedBitcode: BitcodeEmbeddingMode = - if (target.konanTarget == KonanTarget.IOS_ARM64 || target.konanTarget == KonanTarget.IOS_ARM32) { - buildType.iosEmbedBitcode - } else { - BitcodeEmbeddingMode.DISABLE - } + var embedBitcode: BitcodeEmbeddingMode = buildType.embedBitcode(target.konanTarget) /** * Enable or disable embedding bitcode for the framework. See [BitcodeEmbeddingMode]. diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaryTypes.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaryTypes.kt index e7c70d8161a..35ccc4371cc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaryTypes.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaryTypes.kt @@ -3,20 +3,30 @@ package org.jetbrains.kotlin.gradle.plugin.mpp import org.gradle.api.Named import org.jetbrains.kotlin.gradle.plugin.mpp.Framework.BitcodeEmbeddingMode +import org.jetbrains.kotlin.konan.target.Architecture.ARM32 +import org.jetbrains.kotlin.konan.target.Architecture.ARM64 import org.jetbrains.kotlin.konan.target.CompilerOutputKind -import org.jetbrains.kotlin.konan.target.Family +import org.jetbrains.kotlin.konan.target.Family.* import org.jetbrains.kotlin.konan.target.KonanTarget enum class NativeBuildType( val optimized: Boolean, val debuggable: Boolean, - internal val iosEmbedBitcode: BitcodeEmbeddingMode + private val embedBitcodeForAppleDevices: BitcodeEmbeddingMode ) : Named { RELEASE(true, false, BitcodeEmbeddingMode.BITCODE), DEBUG(false, true, BitcodeEmbeddingMode.MARKER); override fun getName(): String = name.toLowerCase() + fun embedBitcode(target: KonanTarget) = with(target) { + if (family in listOf(IOS, WATCHOS, TVOS) && architecture in listOf(ARM32, ARM64)) { + embedBitcodeForAppleDevices + } else { + BitcodeEmbeddingMode.DISABLE + } + } + companion object { val DEFAULT_BUILD_TYPES = setOf(DEBUG, RELEASE) }