From 032981dd83555b2e42c17cf1f912dc72a10e21e4 Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Mon, 29 Nov 2021 10:01:21 +0100 Subject: [PATCH] [Gradle][KPM] Implement KotlinCompilationOutputsJarArtifactConfigurator --- .../mpp/pm20/KotlinCompilationConfigurator.kt | 19 ------------------- .../mpp/pm20/KotlinJvmVariantFactory.kt | 2 +- .../pm20/configuration/KotlinApiElements.kt | 17 +++++++++++++++++ 3 files changed, 18 insertions(+), 20 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationConfigurator.kt index 13fadfa444d..7942d27eb49 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationConfigurator.kt @@ -5,12 +5,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20 -import org.gradle.api.artifacts.Configuration import org.gradle.api.tasks.TaskProvider -import org.gradle.jvm.tasks.Jar -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName -import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask -import org.jetbrains.kotlin.gradle.utils.dashSeparatedName interface KotlinCompileTaskConfigurator { fun registerCompileTasks(variant: T): TaskProvider<*> @@ -32,18 +27,4 @@ object KotlinNativeCompileTaskConfigurator : KotlinCompileTaskConfigurator { - override fun configure(fragment: KotlinGradleVariant, configuration: Configuration) { - val project = fragment.project - val module = fragment.containingModule - val jarTaskName = fragment.disambiguateName("jar") - val jarTask = project.locateOrRegisterTask(jarTaskName) { - it.from(fragment.compilationOutputs.allOutputs) - it.archiveClassifier.set(dashSeparatedName(fragment.name, module.moduleClassifier)) - } - project.artifacts.add(configuration.name, jarTask) - } -} - diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinJvmVariantFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinJvmVariantFactory.kt index 74b313ef827..9be941d596c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinJvmVariantFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinJvmVariantFactory.kt @@ -75,7 +75,7 @@ class KotlinJvmVariantConfigurator( DefaultKotlinRuntimeDependenciesConfigurator, private val apiElementsConfigurator: KotlinFragmentConfigurationsConfigurator = - DefaultKotlinApiElementsConfigurator, + DefaultKotlinApiElementsConfigurator + KotlinCompilationOutputsJarArtifactConfigurator, private val runtimeElementsConfigurator: KotlinFragmentConfigurationsConfigurator = DefaultKotlinRuntimeElementsConfigurator, diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinApiElements.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinApiElements.kt index 648c4780406..8420d4c278c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinApiElements.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/configuration/KotlinApiElements.kt @@ -9,9 +9,13 @@ import org.gradle.api.NamedDomainObjectProvider import org.gradle.api.artifacts.Configuration import org.gradle.api.attributes.Bundling import org.gradle.api.attributes.Category +import org.gradle.jvm.tasks.Jar import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.* import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.locateOrRegister +import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask +import org.jetbrains.kotlin.gradle.utils.dashSeparatedName interface KotlinApiElementsConfigurationInstantiator : KotlinFragmentConfigurationInstantiator @@ -38,3 +42,16 @@ val DefaultKotlinApiElementsConfigurator = KotlinConfigurationsConfigurator( KotlinFragmentModuleCapabilityConfigurator, KotlinFragmentProducerApiUsageAttributesConfigurator ) + +object KotlinCompilationOutputsJarArtifactConfigurator : KotlinFragmentConfigurationsConfigurator { + override fun configure(fragment: KotlinGradleVariant, configuration: Configuration) { + val project = fragment.project + val module = fragment.containingModule + val jarTaskName = fragment.disambiguateName("jar") + val jarTask = project.locateOrRegisterTask(jarTaskName) { + it.from(fragment.compilationOutputs.allOutputs) + it.archiveClassifier.set(dashSeparatedName(fragment.name, module.moduleClassifier)) + } + project.artifacts.add(configuration.name, jarTask) + } +}