Change assemble AppleFrameworkTask name to using framework name prefix
#KT-46892
This commit is contained in:
committed by
teamcityserver
parent
a006f35df3
commit
2129a762a5
+37
-22
@@ -5,15 +5,15 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle
|
||||
|
||||
import org.jetbrains.kotlin.gradle.util.AGPVersion
|
||||
import org.jetbrains.kotlin.konan.target.HostManager
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil
|
||||
import org.junit.Assume
|
||||
import org.junit.BeforeClass
|
||||
import kotlin.test.Test
|
||||
|
||||
class AppleFrameworkIT : KotlinAndroid36GradleIT() {
|
||||
class AppleFrameworkIT : BaseGradleIT() {
|
||||
companion object {
|
||||
private val gradleVersion = GradleVersionRequired.FOR_MPP_SUPPORT
|
||||
|
||||
@BeforeClass
|
||||
@JvmStatic
|
||||
fun assumeItsMac() {
|
||||
@@ -21,11 +21,14 @@ class AppleFrameworkIT : KotlinAndroid36GradleIT() {
|
||||
}
|
||||
}
|
||||
|
||||
override val defaultGradleVersion: GradleVersionRequired
|
||||
get() = gradleVersion
|
||||
override val defaultGradleVersion = GradleVersionRequired.FOR_MPP_SUPPORT
|
||||
override fun defaultBuildOptions() = super.defaultBuildOptions().copy(
|
||||
androidHome = KtTestUtil.findAndroidSdk(),
|
||||
androidGradlePluginVersion = AGPVersion.v3_6_0
|
||||
)
|
||||
|
||||
@Test
|
||||
fun `assemble debug AppleFrameworkForXcode for IosArm64`() {
|
||||
fun `assemble AppleFrameworkForXcode tasks for IosArm64`() {
|
||||
with(Project("sharedAppleFramework")) {
|
||||
val options: BuildOptions = defaultBuildOptions().copy(
|
||||
customEnvironmentVariables = mapOf(
|
||||
@@ -33,18 +36,18 @@ class AppleFrameworkIT : KotlinAndroid36GradleIT() {
|
||||
"SDK_NAME" to "iphoneos123"
|
||||
)
|
||||
)
|
||||
build("assembleSharedDebugAppleFrameworkForXcodeIosArm64", options = options) {
|
||||
build("assembleDebugAppleFrameworkForXcodeIosArm64", options = options) {
|
||||
assertSuccessful()
|
||||
assertTasksExecuted(":shared:assembleSharedDebugAppleFrameworkForXcodeIosArm64")
|
||||
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/shared.framework")
|
||||
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/shared.framework.dSYM")
|
||||
assertTasksExecuted(":shared:assembleDebugAppleFrameworkForXcodeIosArm64")
|
||||
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/sdk.framework")
|
||||
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/sdk.framework.dSYM")
|
||||
}
|
||||
|
||||
build("assembleSharedDebugAppleFrameworkForXcodeIosArm64", options = options) {
|
||||
build("assembleCustomDebugAppleFrameworkForXcodeIosArm64", options = options) {
|
||||
assertSuccessful()
|
||||
assertTasksUpToDate(":shared:assembleSharedDebugAppleFrameworkForXcodeIosArm64")
|
||||
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/shared.framework")
|
||||
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/shared.framework.dSYM")
|
||||
assertTasksExecuted(":shared:assembleCustomDebugAppleFrameworkForXcodeIosArm64")
|
||||
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/lib.framework")
|
||||
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/lib.framework.dSYM")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -55,8 +58,8 @@ class AppleFrameworkIT : KotlinAndroid36GradleIT() {
|
||||
build("tasks") {
|
||||
assertSuccessful()
|
||||
assertTasksNotRegistered(
|
||||
":shared:assembleSharedDebugAppleFrameworkForXcodeIosArm64",
|
||||
":shared:embedAndSignSharedAppleFrameworkForXcode"
|
||||
":shared:assembleDebugAppleFrameworkForXcodeIosArm64",
|
||||
":shared:embedAndSignAppleFrameworkForXcode"
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -77,10 +80,19 @@ class AppleFrameworkIT : KotlinAndroid36GradleIT() {
|
||||
build("tasks", options = options) {
|
||||
assertSuccessful()
|
||||
assertTasksRegistered(
|
||||
":shared:assembleSharedDebugAppleFrameworkForXcodeIosArm64",
|
||||
":shared:embedAndSignSharedAppleFrameworkForXcode"
|
||||
":shared:assembleDebugAppleFrameworkForXcodeIosArm64",
|
||||
":shared:embedAndSignAppleFrameworkForXcode",
|
||||
":shared:assembleCustomDebugAppleFrameworkForXcodeIosArm64",
|
||||
":shared:embedAndSignCustomAppleFrameworkForXcode"
|
||||
)
|
||||
assertTasksNotRegistered(
|
||||
":shared:assembleDebugAppleFrameworkForXcodeIosX64",
|
||||
":shared:assembleReleaseAppleFrameworkForXcodeIosX64",
|
||||
":shared:assembleReleaseAppleFrameworkForXcodeIosArm64",
|
||||
":shared:assembleCustomDebugAppleFrameworkForXcodeIosX64",
|
||||
":shared:assembleCustomReleaseAppleFrameworkForXcodeIosX64",
|
||||
":shared:assembleCustomReleaseAppleFrameworkForXcodeIosArm64"
|
||||
)
|
||||
assertTasksNotRegistered(":shared:assembleSharedDebugAppleFrameworkForXcodeIosX64")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -97,11 +109,14 @@ class AppleFrameworkIT : KotlinAndroid36GradleIT() {
|
||||
build("tasks", options = options) {
|
||||
assertSuccessful()
|
||||
assertTasksRegistered(
|
||||
":shared:assembleSharedDebugAppleFrameworkForXcodeIosArm64",
|
||||
":shared:assembleDebugAppleFrameworkForXcodeIosArm64",
|
||||
":shared:assembleCustomDebugAppleFrameworkForXcodeIosArm64"
|
||||
)
|
||||
assertTasksNotRegistered(
|
||||
":shared:embedAndSignSharedAppleFrameworkForXcode",
|
||||
":shared:assembleSharedDebugAppleFrameworkForXcodeIosX64"
|
||||
":shared:embedAndSignAppleFrameworkForXcode",
|
||||
":shared:assembleDebugAppleFrameworkForXcodeIosX64",
|
||||
":shared:embedAndSignCustomAppleFrameworkForXcode",
|
||||
":shared:assembleCustomDebugAppleFrameworkForXcodeIosX64"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+4
-1
@@ -9,7 +9,10 @@ kotlin {
|
||||
ios() {
|
||||
binaries {
|
||||
framework {
|
||||
baseName = "shared"
|
||||
baseName = "sdk"
|
||||
}
|
||||
framework("custom") {
|
||||
baseName = "lib"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+8
@@ -160,6 +160,14 @@ open class KotlinNativeBinaryContainer @Inject constructor(
|
||||
internal fun generateBinaryName(prefix: String, buildType: NativeBuildType, outputKindClassifier: String) =
|
||||
lowerCamelCaseName(prefix, buildType.getName(), outputKindClassifier)
|
||||
|
||||
internal fun extractPrefixFromBinaryName(name: String, buildType: NativeBuildType, outputKindClassifier: String): String {
|
||||
val suffix = lowerCamelCaseName(buildType.getName(), outputKindClassifier)
|
||||
return if (name == suffix)
|
||||
""
|
||||
else
|
||||
name.substringBeforeLast(suffix.capitalize())
|
||||
}
|
||||
|
||||
// TODO: Remove in 1.3.50.
|
||||
private val GET_TEST_DEPRECATION_WARNING = """
|
||||
|
|
||||
|
||||
+12
-4
@@ -9,6 +9,7 @@ import org.gradle.api.Project
|
||||
import org.gradle.api.plugins.BasePlugin
|
||||
import org.gradle.api.tasks.Copy
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinNativeBinaryContainer
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.Framework
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.enabledOnCurrentHost
|
||||
@@ -73,8 +74,8 @@ private fun Project.registerAssembleAppleFrameworkTask(framework: Framework): Ta
|
||||
val frameworkTarget = framework.target
|
||||
val frameworkTaskName = lowerCamelCaseName(
|
||||
"assemble",
|
||||
framework.baseName,
|
||||
frameworkBuildType.name.toLowerCaseAsciiOnly(),
|
||||
framework.namePrefix,
|
||||
frameworkBuildType.getName(),
|
||||
"AppleFrameworkForXcode",
|
||||
frameworkTarget.name
|
||||
)
|
||||
@@ -119,7 +120,7 @@ internal fun Project.registerEmbedAndSignAppleFrameworkTask(framework: Framework
|
||||
val envFrameworkSearchDir = XcodeEnvironment.frameworkSearchDir
|
||||
val envSign = XcodeEnvironment.sign
|
||||
|
||||
val frameworkTaskName = lowerCamelCaseName("embedAndSign", framework.baseName, "AppleFrameworkForXcode")
|
||||
val frameworkTaskName = lowerCamelCaseName("embedAndSign", framework.namePrefix, "AppleFrameworkForXcode")
|
||||
|
||||
if (envBuildType == null || envTarget == null || envEmbeddedFrameworksDir == null || envFrameworkSearchDir == null) {
|
||||
logger.debug(
|
||||
@@ -133,7 +134,7 @@ internal fun Project.registerEmbedAndSignAppleFrameworkTask(framework: Framework
|
||||
|
||||
registerTask<Copy>(frameworkTaskName) { task ->
|
||||
task.group = "build"
|
||||
task.description = "Embed and sign ${framework.baseName} framework as requested by Xcode's environment variables"
|
||||
task.description = "Embed and sign ${framework.namePrefix} framework as requested by Xcode's environment variables"
|
||||
|
||||
task.dependsOn(assembleTask)
|
||||
task.inputs.apply {
|
||||
@@ -162,5 +163,12 @@ internal fun Project.registerEmbedAndSignAppleFrameworkTask(framework: Framework
|
||||
}
|
||||
}
|
||||
|
||||
private val Framework.namePrefix: String
|
||||
get() = KotlinNativeBinaryContainer.extractPrefixFromBinaryName(
|
||||
name,
|
||||
buildType,
|
||||
outputKind.taskNameClassifier
|
||||
)
|
||||
|
||||
private fun Project.appleFrameworkDir(frameworkSearchDir: File) =
|
||||
buildDir.resolve("xcode-frameworks").resolve(frameworkSearchDir)
|
||||
Reference in New Issue
Block a user