From cc0a9e1cc19b74b3eb00b837822425e08ebdcb96 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Tue, 17 Oct 2023 09:49:29 +0200 Subject: [PATCH] [Gradle] Implement MultiplatformPublishingSetupAction KT-61634 --- .../plugin/mpp/KotlinMultiplatformPlugin.kt | 2 -- .../kotlin/gradle/plugin/mpp/Publishing.kt | 18 ++++++++++-------- .../plugin/registerKotlinPluginExtensions.kt | 2 ++ 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt index 9bdea4d1f35..88890f12581 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt @@ -48,8 +48,6 @@ class KotlinMultiplatformPlugin : Plugin { METADATA_TARGET_NAME ) project.registerKotlinArtifactsExtension() - - configurePublishingWithMavenPublish(project) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/Publishing.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/Publishing.kt index 2984b6aa10f..fdb9ca78f5a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/Publishing.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/Publishing.kt @@ -28,15 +28,17 @@ import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnab import org.jetbrains.kotlin.gradle.tooling.buildKotlinToolingMetadataTask import org.jetbrains.kotlin.gradle.utils.whenEvaluated -internal fun configurePublishingWithMavenPublish(project: Project) = project.pluginManager.withPlugin("maven-publish") { - if (project.kotlinPropertiesProvider.createDefaultMultiplatformPublications) { - project.extensions.configure(PublishingExtension::class.java) { publishing -> - createRootPublication(project, publishing) - createTargetPublications(project, publishing) +internal val MultiplatformPublishingSetupAction = KotlinProjectSetupAction { + project.pluginManager.withPlugin("maven-publish") { + if (project.kotlinPropertiesProvider.createDefaultMultiplatformPublications) { + project.extensions.configure(PublishingExtension::class.java) { publishing -> + createRootPublication(project, publishing) + createTargetPublications(project, publishing) + } } - } - project.components.add(project.multiplatformExtension.rootSoftwareComponent) + project.components.add(project.multiplatformExtension.rootSoftwareComponent) + } } /** @@ -163,4 +165,4 @@ internal fun Configuration.configureSourcesPublicationAttributes(target: KotlinT // however for Java Gradle Plugin compatibility and in order to prevent weird Variant Resolution errors we include this attribute attributes.attribute(Bundling.BUNDLING_ATTRIBUTE, project.attributeValueByName(Bundling.EXTERNAL)) usesPlatformOf(target) -} \ No newline at end of file +} 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 4c41ff0511c..3c61171595c 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 @@ -32,6 +32,7 @@ import org.jetbrains.kotlin.gradle.plugin.diagnostics.checkers.WasmSourceSetsNot import org.jetbrains.kotlin.gradle.plugin.ide.IdeMultiplatformImportSetupAction import org.jetbrains.kotlin.gradle.plugin.ide.IdeResolveDependenciesTaskSetupAction import org.jetbrains.kotlin.gradle.plugin.mpp.GlobalProjectStructureMetadataStorageSetupAction +import org.jetbrains.kotlin.gradle.plugin.mpp.MultiplatformPublishingSetupAction import org.jetbrains.kotlin.gradle.plugin.mpp.SyncLanguageSettingsWithKotlinExtensionSetupAction import org.jetbrains.kotlin.gradle.plugin.mpp.UserDefinedAttributesSetupAction import org.jetbrains.kotlin.gradle.plugin.mpp.apple.AddBuildListenerForXCodeSetupAction @@ -59,6 +60,7 @@ internal fun Project.registerKotlinPluginExtensions() { } if (isMultiplatform) { + register(project, MultiplatformPublishingSetupAction) register(project, LanguageSettingsSetupAction) register(project, GlobalProjectStructureMetadataStorageSetupAction) register(project, IdeMultiplatformImportSetupAction)