[Gradle] Implement MultiplatformPublishingSetupAction

KT-61634
This commit is contained in:
Sebastian Sellmair
2023-10-17 09:49:29 +02:00
committed by Space Team
parent 822cb7f545
commit cc0a9e1cc1
3 changed files with 12 additions and 10 deletions
@@ -48,8 +48,6 @@ class KotlinMultiplatformPlugin : Plugin<Project> {
METADATA_TARGET_NAME
)
project.registerKotlinArtifactsExtension()
configurePublishingWithMavenPublish(project)
}
@@ -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)
}
}
@@ -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)