[KT-53339] KMM: skip embedding for static frameworks.

This commit is contained in:
konstantin.tskhovrebov
2022-08-01 16:14:57 +02:00
committed by Space
parent ad1b10cdb0
commit 8a7b399dbe
2 changed files with 32 additions and 0 deletions
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.native
import org.jetbrains.kotlin.gradle.BaseGradleIT
import org.jetbrains.kotlin.gradle.GradleVersionRequired
import org.jetbrains.kotlin.gradle.util.AGPVersion
import org.jetbrains.kotlin.gradle.util.modify
import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.test.util.KtTestUtil
import org.junit.Assume
@@ -180,4 +181,34 @@ class AppleFrameworkIT : BaseGradleIT() {
}
}
}
@Test
fun `check that static framework for Arm64 is built but is not embedded`() {
with(Project("sharedAppleFramework")) {
val options: BuildOptions = defaultBuildOptions().copy(
customEnvironmentVariables = mapOf(
"CONFIGURATION" to "debug",
"SDK_NAME" to "iphoneos123",
"ARCHS" to "arm64",
"TARGET_BUILD_DIR" to "no use",
"FRAMEWORKS_FOLDER_PATH" to "no use"
)
)
setupWorkingDir()
projectDir.resolve("shared/build.gradle.kts").modify {
it.replace(
"baseName = \"sdk\"",
"baseName = \"sdk\"\nisStatic = true"
)
}
build("embedAndSignAppleFrameworkForXcode", options = options) {
assertSuccessful()
assertTasksExecuted(":shared:assembleDebugAppleFrameworkForXcodeIosArm64")
assertTasksNotExecuted(":shared:embedAndSignAppleFrameworkForXcode")
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/sdk.framework")
assertNoSuchFile("/shared/build/xcode-frameworks/debug/iphoneos123/sdk.framework.dSYM")
}
}
}
}
@@ -172,6 +172,7 @@ internal fun Project.registerEmbedAndSignAppleFrameworkTask(framework: Framework
val embedAndSignTask = locateOrRegisterTask<FrameworkCopy>(frameworkTaskName) { task ->
task.group = BasePlugin.BUILD_GROUP
task.description = "Embed and sign ${framework.namePrefix} framework as requested by Xcode's environment variables"
task.isEnabled = !framework.isStatic
task.inputs.apply {
property("type", envBuildType)
property("targets", envTargets)