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
|
package org.jetbrains.kotlin.gradle
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.gradle.util.AGPVersion
|
||||||
import org.jetbrains.kotlin.konan.target.HostManager
|
import org.jetbrains.kotlin.konan.target.HostManager
|
||||||
|
import org.jetbrains.kotlin.test.util.KtTestUtil
|
||||||
import org.junit.Assume
|
import org.junit.Assume
|
||||||
import org.junit.BeforeClass
|
import org.junit.BeforeClass
|
||||||
import kotlin.test.Test
|
import kotlin.test.Test
|
||||||
|
|
||||||
class AppleFrameworkIT : KotlinAndroid36GradleIT() {
|
class AppleFrameworkIT : BaseGradleIT() {
|
||||||
companion object {
|
companion object {
|
||||||
private val gradleVersion = GradleVersionRequired.FOR_MPP_SUPPORT
|
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun assumeItsMac() {
|
fun assumeItsMac() {
|
||||||
@@ -21,11 +21,14 @@ class AppleFrameworkIT : KotlinAndroid36GradleIT() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override val defaultGradleVersion: GradleVersionRequired
|
override val defaultGradleVersion = GradleVersionRequired.FOR_MPP_SUPPORT
|
||||||
get() = gradleVersion
|
override fun defaultBuildOptions() = super.defaultBuildOptions().copy(
|
||||||
|
androidHome = KtTestUtil.findAndroidSdk(),
|
||||||
|
androidGradlePluginVersion = AGPVersion.v3_6_0
|
||||||
|
)
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `assemble debug AppleFrameworkForXcode for IosArm64`() {
|
fun `assemble AppleFrameworkForXcode tasks for IosArm64`() {
|
||||||
with(Project("sharedAppleFramework")) {
|
with(Project("sharedAppleFramework")) {
|
||||||
val options: BuildOptions = defaultBuildOptions().copy(
|
val options: BuildOptions = defaultBuildOptions().copy(
|
||||||
customEnvironmentVariables = mapOf(
|
customEnvironmentVariables = mapOf(
|
||||||
@@ -33,18 +36,18 @@ class AppleFrameworkIT : KotlinAndroid36GradleIT() {
|
|||||||
"SDK_NAME" to "iphoneos123"
|
"SDK_NAME" to "iphoneos123"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
build("assembleSharedDebugAppleFrameworkForXcodeIosArm64", options = options) {
|
build("assembleDebugAppleFrameworkForXcodeIosArm64", options = options) {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
assertTasksExecuted(":shared:assembleSharedDebugAppleFrameworkForXcodeIosArm64")
|
assertTasksExecuted(":shared:assembleDebugAppleFrameworkForXcodeIosArm64")
|
||||||
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/shared.framework")
|
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/sdk.framework")
|
||||||
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/shared.framework.dSYM")
|
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/sdk.framework.dSYM")
|
||||||
}
|
}
|
||||||
|
|
||||||
build("assembleSharedDebugAppleFrameworkForXcodeIosArm64", options = options) {
|
build("assembleCustomDebugAppleFrameworkForXcodeIosArm64", options = options) {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
assertTasksUpToDate(":shared:assembleSharedDebugAppleFrameworkForXcodeIosArm64")
|
assertTasksExecuted(":shared:assembleCustomDebugAppleFrameworkForXcodeIosArm64")
|
||||||
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/shared.framework")
|
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/lib.framework")
|
||||||
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/shared.framework.dSYM")
|
assertFileExists("/shared/build/xcode-frameworks/debug/iphoneos123/lib.framework.dSYM")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -55,8 +58,8 @@ class AppleFrameworkIT : KotlinAndroid36GradleIT() {
|
|||||||
build("tasks") {
|
build("tasks") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
assertTasksNotRegistered(
|
assertTasksNotRegistered(
|
||||||
":shared:assembleSharedDebugAppleFrameworkForXcodeIosArm64",
|
":shared:assembleDebugAppleFrameworkForXcodeIosArm64",
|
||||||
":shared:embedAndSignSharedAppleFrameworkForXcode"
|
":shared:embedAndSignAppleFrameworkForXcode"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -77,10 +80,19 @@ class AppleFrameworkIT : KotlinAndroid36GradleIT() {
|
|||||||
build("tasks", options = options) {
|
build("tasks", options = options) {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
assertTasksRegistered(
|
assertTasksRegistered(
|
||||||
":shared:assembleSharedDebugAppleFrameworkForXcodeIosArm64",
|
":shared:assembleDebugAppleFrameworkForXcodeIosArm64",
|
||||||
":shared:embedAndSignSharedAppleFrameworkForXcode"
|
":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) {
|
build("tasks", options = options) {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
assertTasksRegistered(
|
assertTasksRegistered(
|
||||||
":shared:assembleSharedDebugAppleFrameworkForXcodeIosArm64",
|
":shared:assembleDebugAppleFrameworkForXcodeIosArm64",
|
||||||
|
":shared:assembleCustomDebugAppleFrameworkForXcodeIosArm64"
|
||||||
)
|
)
|
||||||
assertTasksNotRegistered(
|
assertTasksNotRegistered(
|
||||||
":shared:embedAndSignSharedAppleFrameworkForXcode",
|
":shared:embedAndSignAppleFrameworkForXcode",
|
||||||
":shared:assembleSharedDebugAppleFrameworkForXcodeIosX64"
|
":shared:assembleDebugAppleFrameworkForXcodeIosX64",
|
||||||
|
":shared:embedAndSignCustomAppleFrameworkForXcode",
|
||||||
|
":shared:assembleCustomDebugAppleFrameworkForXcodeIosX64"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-1
@@ -9,7 +9,10 @@ kotlin {
|
|||||||
ios() {
|
ios() {
|
||||||
binaries {
|
binaries {
|
||||||
framework {
|
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) =
|
internal fun generateBinaryName(prefix: String, buildType: NativeBuildType, outputKindClassifier: String) =
|
||||||
lowerCamelCaseName(prefix, buildType.getName(), outputKindClassifier)
|
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.
|
// TODO: Remove in 1.3.50.
|
||||||
private val GET_TEST_DEPRECATION_WARNING = """
|
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.plugins.BasePlugin
|
||||||
import org.gradle.api.tasks.Copy
|
import org.gradle.api.tasks.Copy
|
||||||
import org.gradle.api.tasks.TaskProvider
|
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.Framework
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType
|
import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.enabledOnCurrentHost
|
import org.jetbrains.kotlin.gradle.plugin.mpp.enabledOnCurrentHost
|
||||||
@@ -73,8 +74,8 @@ private fun Project.registerAssembleAppleFrameworkTask(framework: Framework): Ta
|
|||||||
val frameworkTarget = framework.target
|
val frameworkTarget = framework.target
|
||||||
val frameworkTaskName = lowerCamelCaseName(
|
val frameworkTaskName = lowerCamelCaseName(
|
||||||
"assemble",
|
"assemble",
|
||||||
framework.baseName,
|
framework.namePrefix,
|
||||||
frameworkBuildType.name.toLowerCaseAsciiOnly(),
|
frameworkBuildType.getName(),
|
||||||
"AppleFrameworkForXcode",
|
"AppleFrameworkForXcode",
|
||||||
frameworkTarget.name
|
frameworkTarget.name
|
||||||
)
|
)
|
||||||
@@ -119,7 +120,7 @@ internal fun Project.registerEmbedAndSignAppleFrameworkTask(framework: Framework
|
|||||||
val envFrameworkSearchDir = XcodeEnvironment.frameworkSearchDir
|
val envFrameworkSearchDir = XcodeEnvironment.frameworkSearchDir
|
||||||
val envSign = XcodeEnvironment.sign
|
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) {
|
if (envBuildType == null || envTarget == null || envEmbeddedFrameworksDir == null || envFrameworkSearchDir == null) {
|
||||||
logger.debug(
|
logger.debug(
|
||||||
@@ -133,7 +134,7 @@ internal fun Project.registerEmbedAndSignAppleFrameworkTask(framework: Framework
|
|||||||
|
|
||||||
registerTask<Copy>(frameworkTaskName) { task ->
|
registerTask<Copy>(frameworkTaskName) { task ->
|
||||||
task.group = "build"
|
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.dependsOn(assembleTask)
|
||||||
task.inputs.apply {
|
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) =
|
private fun Project.appleFrameworkDir(frameworkSearchDir: File) =
|
||||||
buildDir.resolve("xcode-frameworks").resolve(frameworkSearchDir)
|
buildDir.resolve("xcode-frameworks").resolve(frameworkSearchDir)
|
||||||
Reference in New Issue
Block a user