Gradle, native: Embed bitcode for watchOS and tvOS

This commit is contained in:
Ilya Matveev
2019-09-19 14:53:14 +07:00
parent 2819ab4ae9
commit 1b64583855
2 changed files with 13 additions and 8 deletions
@@ -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].
@@ -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)
}