From faecd7f77269876e11b552b9feb894ed967e9e83 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Thu, 2 Nov 2023 17:01:30 +0100 Subject: [PATCH] [Gradle] Implement KotlinNativeTargetConfigurator.registerEmbedAndSignAppleFrameworkTasks as EP as side effects KT-61634 --- .../plugin/registerKotlinPluginExtensions.kt | 2 ++ .../native/KotlinNativeTargetConfigurator.kt | 11 +---------- ...EmbedAndSignAppleFrameworkTaskSideEffect.kt | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/SetupEmbedAndSignAppleFrameworkTaskSideEffect.kt diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt index e98e2b089f2..3561bff2a70 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt @@ -68,6 +68,7 @@ import org.jetbrains.kotlin.gradle.targets.metadata.KotlinMetadataTargetSetupAct import org.jetbrains.kotlin.gradle.targets.native.ConfigureFrameworkExportSideEffect import org.jetbrains.kotlin.gradle.targets.native.CreateFatFrameworksSetupAction import org.jetbrains.kotlin.gradle.targets.native.KotlinNativeConfigureBinariesSideEffect +import org.jetbrains.kotlin.gradle.targets.native.SetupEmbedAndSignAppleFrameworkTaskSideEffect import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropCommonizedCInteropApiElementsConfigurationsSetupAction import org.jetbrains.kotlin.gradle.targets.native.internal.SetupCInteropApiElementsConfigurationSideEffect import org.jetbrains.kotlin.gradle.targets.native.tasks.artifact.KotlinArtifactsExtensionSetupAction @@ -119,6 +120,7 @@ internal fun Project.registerKotlinPluginExtensions() { register(project, CreateDefaultTestRunSideEffect) register(project, ConfigureFrameworkExportSideEffect) register(project, SetupCInteropApiElementsConfigurationSideEffect) + register(project, SetupEmbedAndSignAppleFrameworkTaskSideEffect) } KotlinCompilationSideEffect.extensionPoint.apply { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt index 79c41f828e4..d98c2993917 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt @@ -24,10 +24,6 @@ open class KotlinNativeTargetConfigurator : AbstractKotl // region Configuration. override fun configurePlatformSpecificModel(target: T) { - if (target.konanTarget.family.isAppleFamily) { - registerEmbedAndSignAppleFrameworkTasks(target) - } - if (PropertiesProvider(target.project).ignoreIncorrectNativeDependencies != true) { warnAboutIncorrectDependencies(target) } @@ -35,12 +31,7 @@ open class KotlinNativeTargetConfigurator : AbstractKotl - private fun registerEmbedAndSignAppleFrameworkTasks(target: KotlinNativeTarget) { - val project = target.project - target.binaries.withType(Framework::class.java).all { framework -> - project.registerEmbedAndSignAppleFrameworkTask(framework) - } - } + private fun warnAboutIncorrectDependencies(target: KotlinNativeTarget) = target.project.launchInStage(ReadyForExecution) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/SetupEmbedAndSignAppleFrameworkTaskSideEffect.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/SetupEmbedAndSignAppleFrameworkTaskSideEffect.kt new file mode 100644 index 00000000000..95fb4a77b34 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/SetupEmbedAndSignAppleFrameworkTaskSideEffect.kt @@ -0,0 +1,18 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.targets.native + +import org.jetbrains.kotlin.gradle.plugin.mpp.Framework +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.apple.registerEmbedAndSignAppleFrameworkTask +import org.jetbrains.kotlin.gradle.targets.KotlinTargetSideEffect + +internal val SetupEmbedAndSignAppleFrameworkTaskSideEffect = KotlinTargetSideEffect { target -> + if (!target.konanTarget.family.isAppleFamily) return@KotlinTargetSideEffect + target.binaries.withType(Framework::class.java).all { framework -> + target.project.registerEmbedAndSignAppleFrameworkTask(framework) + } +}