From 16835469a45541035f8958de0401afdcc399fa6a Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Fri, 13 Jan 2023 10:12:59 +0100 Subject: [PATCH] [Gradle] Let InternalKotlinTarget implement HasMutableExtras KT-55926 --- .../kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt | 7 ++++++- .../kotlin/gradle/plugin/mpp/InternalKotlinTarget.kt | 3 ++- .../gradle/plugin/mpp/external/ExternalKotlinTargetImpl.kt | 4 ++++ ...urceSetExtensions.kt => ExternalTargetApiExtensions.kt} | 5 +++++ 4 files changed, 17 insertions(+), 2 deletions(-) rename libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/{KotlinSourceSetExtensions.kt => ExternalTargetApiExtensions.kt} (74%) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt index 1a273b1c730..1f86046d682 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt @@ -25,6 +25,8 @@ import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsageContext.MavenScope.* import org.jetbrains.kotlin.gradle.utils.dashSeparatedName import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName +import org.jetbrains.kotlin.tooling.core.MutableExtras +import org.jetbrains.kotlin.tooling.core.mutableExtrasOf import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly internal const val PRIMARY_SINGLE_COMPONENT_NAME = "kotlin" @@ -32,6 +34,9 @@ internal const val PRIMARY_SINGLE_COMPONENT_NAME = "kotlin" abstract class AbstractKotlinTarget( final override val project: Project ) : InternalKotlinTarget { + + final override val extras: MutableExtras = mutableExtrasOf() + private val attributeContainer = HierarchyAttributeContainer(parent = null) override fun getAttributes(): AttributeContainer = attributeContainer @@ -208,7 +213,7 @@ internal fun Project.buildAdhocComponentsFromKotlinVariants(kotlinVariants: Set< adhocVariant.addVariantsFromConfiguration(configuration) { configurationVariantDetails -> val mavenScope = kotlinUsageContext.mavenScope if (mavenScope != null) { - val mavenScopeString = when(mavenScope) { + val mavenScopeString = when (mavenScope) { COMPILE -> "compile" RUNTIME -> "runtime" } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/InternalKotlinTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/InternalKotlinTarget.kt index a111dc06bd3..4e3c8a281cc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/InternalKotlinTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/InternalKotlinTarget.kt @@ -8,8 +8,9 @@ package org.jetbrains.kotlin.gradle.plugin.mpp import org.gradle.api.publish.maven.MavenPublication import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.KotlinTargetComponent +import org.jetbrains.kotlin.tooling.core.HasMutableExtras -internal interface InternalKotlinTarget : KotlinTarget { +internal interface InternalKotlinTarget : KotlinTarget, HasMutableExtras { val kotlinComponents: Set fun onPublicationCreated(publication: MavenPublication) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalKotlinTargetImpl.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalKotlinTargetImpl.kt index 7668410c653..e2f11f2ec29 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalKotlinTargetImpl.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalKotlinTargetImpl.kt @@ -19,6 +19,8 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinTargetComponent import org.jetbrains.kotlin.gradle.plugin.mpp.HierarchyAttributeContainer import org.jetbrains.kotlin.gradle.plugin.mpp.InternalKotlinTarget +import org.jetbrains.kotlin.tooling.core.MutableExtras +import org.jetbrains.kotlin.tooling.core.mutableExtrasOf internal class ExternalKotlinTargetImpl internal constructor( override val project: Project, @@ -42,6 +44,8 @@ internal class ExternalKotlinTargetImpl internal constructor( val kotlin = project.multiplatformExtension + override val extras: MutableExtras = mutableExtrasOf() + override val preset: Nothing? = null internal val logger: Logger = Logging.getLogger("${ExternalKotlinTargetImpl::class.qualifiedName}: $name") diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/KotlinSourceSetExtensions.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalTargetApiExtensions.kt similarity index 74% rename from libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/KotlinSourceSetExtensions.kt rename to libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalTargetApiExtensions.kt index d4a28fea12f..7c9df31d5c8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/KotlinSourceSetExtensions.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalTargetApiExtensions.kt @@ -7,8 +7,13 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.external import org.jetbrains.kotlin.gradle.ExternalKotlinTargetApi import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet +import org.jetbrains.kotlin.gradle.plugin.KotlinTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.internal import org.jetbrains.kotlin.gradle.plugin.sources.internal import org.jetbrains.kotlin.tooling.core.MutableExtras @ExternalKotlinTargetApi val KotlinSourceSet.extras: MutableExtras get() = this.internal.extras + +@ExternalKotlinTargetApi +val KotlinTarget.extras: MutableExtras get() = this.internal.extras \ No newline at end of file