From a8266eb20e6cb2a8728a9ea87b41e1b0a58b0096 Mon Sep 17 00:00:00 2001 From: Timofey Solonin Date: Tue, 27 Feb 2024 10:42:30 +0100 Subject: [PATCH] Simplify set up of the resources variant in js and native targets ^KT-65540 --- .../KotlinTargetVariantResourcesPublication.kt | 9 ++++++--- .../gradle/targets/js/ir/KotlinJsIrTarget.kt | 15 +++++---------- .../gradle/targets/native/KotlinNativeTarget.kt | 11 ++++------- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/resources/publication/KotlinTargetVariantResourcesPublication.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/resources/publication/KotlinTargetVariantResourcesPublication.kt index 45d5f12219e..a52a5a34583 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/resources/publication/KotlinTargetVariantResourcesPublication.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/resources/publication/KotlinTargetVariantResourcesPublication.kt @@ -9,7 +9,9 @@ import org.gradle.api.file.DuplicatesStrategy import org.gradle.api.tasks.bundling.Zip import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension +import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation +import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider import org.jetbrains.kotlin.gradle.plugin.launch import org.jetbrains.kotlin.gradle.plugin.mpp.AbstractKotlinTarget import org.jetbrains.kotlin.gradle.plugin.mpp.DefaultKotlinUsageContext @@ -23,10 +25,11 @@ import org.jetbrains.kotlin.gradle.tasks.registerTask // Use KotlinMultiplatformExtension to make sure this usage context is only creatable in MPP @Suppress("UnusedReceiverParameter") -internal fun KotlinMultiplatformExtension.setUpResourcesVariant( - target: AbstractKotlinTarget, +internal fun AbstractKotlinTarget.setUpResourcesVariant( compilation: KotlinCompilation<*>, -): DefaultKotlinUsageContext = with(target) { +): DefaultKotlinUsageContext? { + if (project.multiplatformExtensionOrNull == null || !project.kotlinPropertiesProvider.mppResourcesPublication) return null + var targetRegistersResourcesForPublication = false val resourcesVariant = DefaultKotlinUsageContext( compilation = compilation, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt index 51f798575b6..6cb16398c04 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt @@ -89,16 +89,11 @@ constructor( ) ) - if (project.kotlinPropertiesProvider.mppResourcesPublication) { - project.multiplatformExtensionOrNull?.let { - usageContexts.add( - it.setUpResourcesVariant( - this, - mainCompilation - ) - ) - } - } + usageContexts.addIfNotNull( + setUpResourcesVariant( + mainCompilation + ) + ) val result = createKotlinVariant(componentName, mainCompilation, usageContexts) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt index 47bccf66890..43f75792702 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt @@ -83,14 +83,11 @@ abstract class KotlinNativeTarget @Inject constructor( ) ) - if (project.kotlinPropertiesProvider.mppResourcesPublication) { - mutableUsageContexts.add( - project.multiplatformExtension.setUpResourcesVariant( - this, - mainCompilation, - ) + mutableUsageContexts.addIfNotNull( + setUpResourcesVariant( + mainCompilation ) - } + ) val result = createKotlinVariant(targetName, mainCompilation, mutableUsageContexts)