From 070b80a05fb00f4cc94895e8bb196d9b64212a48 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Tue, 17 Oct 2023 10:02:35 +0200 Subject: [PATCH] [Gradle] Implement KotlinMetadataTargetSetupAction KT-61634 --- .../plugin/mpp/KotlinMultiplatformPlugin.kt | 11 ---------- .../plugin/registerKotlinPluginExtensions.kt | 2 ++ .../KotlinMetadataTargetSetupAction.kt | 20 +++++++++++++++++++ 3 files changed, 22 insertions(+), 11 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetSetupAction.kt 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 4860c7677e2..ab96a20f802 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 @@ -8,9 +8,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.plugins.JavaBasePlugin -import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension -import org.jetbrains.kotlin.gradle.dsl.targetFromPresetInternal import org.jetbrains.kotlin.gradle.internal.customizeKotlinDependencies import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.hierarchy.setupDefaultKotlinHierarchy @@ -34,21 +32,12 @@ class KotlinMultiplatformPlugin : Plugin { project.plugins.apply(JavaBasePlugin::class.java) - val kotlinMultiplatformExtension = project.extensions.getByType(KotlinMultiplatformExtension::class.java) - setupDefaultPresets(project) customizeKotlinDependencies(project) configureSourceSets(project) setupTargetsBuildStatsReport(project) - - // set up metadata publishing - kotlinMultiplatformExtension.targetFromPresetInternal( - KotlinMetadataTargetPreset(project), - METADATA_TARGET_NAME - ) } - fun setupDefaultPresets(project: Project) { with(project.multiplatformExtension.presets) { add(KotlinJvmTargetPreset(project)) 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 41f97caca8a..2705406eaf9 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 @@ -39,6 +39,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.apple.AddBuildListenerForXCodeSetu import org.jetbrains.kotlin.gradle.plugin.sources.LanguageSettingsSetupAction import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubpluginSetupAction import org.jetbrains.kotlin.gradle.targets.js.npm.AddNpmDependencyExtensionProjectSetupAction +import org.jetbrains.kotlin.gradle.targets.metadata.KotlinMetadataTargetSetupAction import org.jetbrains.kotlin.gradle.targets.native.CreateFatFrameworksSetupAction import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropCommonizedCInteropApiElementsConfigurationsSetupAction import org.jetbrains.kotlin.gradle.targets.native.tasks.artifact.KotlinArtifactsExtensionSetupAction @@ -61,6 +62,7 @@ internal fun Project.registerKotlinPluginExtensions() { } if (isMultiplatform) { + register(project, KotlinMetadataTargetSetupAction) register(project, KotlinArtifactsExtensionSetupAction) register(project, MultiplatformPublishingSetupAction) register(project, LanguageSettingsSetupAction) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetSetupAction.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetSetupAction.kt new file mode 100644 index 00000000000..76c385e1f2e --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetSetupAction.kt @@ -0,0 +1,20 @@ +/* + * 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.metadata + +import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension +import org.jetbrains.kotlin.gradle.dsl.targetFromPresetInternal +import org.jetbrains.kotlin.gradle.plugin.KotlinProjectSetupAction +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataTargetPreset +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin + +internal val KotlinMetadataTargetSetupAction = KotlinProjectSetupAction { + /* Create metadata target */ + multiplatformExtension.targetFromPresetInternal( + KotlinMetadataTargetPreset(project), + KotlinMultiplatformPlugin.METADATA_TARGET_NAME + ) +}