[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 METADATA_TARGET_NAME
) )
project.registerKotlinArtifactsExtension() 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.tooling.buildKotlinToolingMetadataTask
import org.jetbrains.kotlin.gradle.utils.whenEvaluated import org.jetbrains.kotlin.gradle.utils.whenEvaluated
internal fun configurePublishingWithMavenPublish(project: Project) = project.pluginManager.withPlugin("maven-publish") { internal val MultiplatformPublishingSetupAction = KotlinProjectSetupAction {
if (project.kotlinPropertiesProvider.createDefaultMultiplatformPublications) { project.pluginManager.withPlugin("maven-publish") {
project.extensions.configure(PublishingExtension::class.java) { publishing -> if (project.kotlinPropertiesProvider.createDefaultMultiplatformPublications) {
createRootPublication(project, publishing) project.extensions.configure(PublishingExtension::class.java) { publishing ->
createTargetPublications(project, publishing) createRootPublication(project, publishing)
createTargetPublications(project, publishing)
}
} }
}
project.components.add(project.multiplatformExtension.rootSoftwareComponent) project.components.add(project.multiplatformExtension.rootSoftwareComponent)
}
} }
/** /**
@@ -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.IdeMultiplatformImportSetupAction
import org.jetbrains.kotlin.gradle.plugin.ide.IdeResolveDependenciesTaskSetupAction import org.jetbrains.kotlin.gradle.plugin.ide.IdeResolveDependenciesTaskSetupAction
import org.jetbrains.kotlin.gradle.plugin.mpp.GlobalProjectStructureMetadataStorageSetupAction 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.SyncLanguageSettingsWithKotlinExtensionSetupAction
import org.jetbrains.kotlin.gradle.plugin.mpp.UserDefinedAttributesSetupAction import org.jetbrains.kotlin.gradle.plugin.mpp.UserDefinedAttributesSetupAction
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.AddBuildListenerForXCodeSetupAction import org.jetbrains.kotlin.gradle.plugin.mpp.apple.AddBuildListenerForXCodeSetupAction
@@ -59,6 +60,7 @@ internal fun Project.registerKotlinPluginExtensions() {
} }
if (isMultiplatform) { if (isMultiplatform) {
register(project, MultiplatformPublishingSetupAction)
register(project, LanguageSettingsSetupAction) register(project, LanguageSettingsSetupAction)
register(project, GlobalProjectStructureMetadataStorageSetupAction) register(project, GlobalProjectStructureMetadataStorageSetupAction)
register(project, IdeMultiplatformImportSetupAction) register(project, IdeMultiplatformImportSetupAction)