Simplify set up of the resources variant in js and native targets

^KT-65540
This commit is contained in:
Timofey Solonin
2024-02-27 10:42:30 +01:00
committed by Space Team
parent 1895e480c5
commit a8266eb20e
3 changed files with 15 additions and 20 deletions
@@ -9,7 +9,9 @@ import org.gradle.api.file.DuplicatesStrategy
import org.gradle.api.tasks.bundling.Zip import org.gradle.api.tasks.bundling.Zip
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension 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.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
import org.jetbrains.kotlin.gradle.plugin.launch import org.jetbrains.kotlin.gradle.plugin.launch
import org.jetbrains.kotlin.gradle.plugin.mpp.AbstractKotlinTarget import org.jetbrains.kotlin.gradle.plugin.mpp.AbstractKotlinTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.DefaultKotlinUsageContext 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 // Use KotlinMultiplatformExtension to make sure this usage context is only creatable in MPP
@Suppress("UnusedReceiverParameter") @Suppress("UnusedReceiverParameter")
internal fun KotlinMultiplatformExtension.setUpResourcesVariant( internal fun AbstractKotlinTarget.setUpResourcesVariant(
target: AbstractKotlinTarget,
compilation: KotlinCompilation<*>, compilation: KotlinCompilation<*>,
): DefaultKotlinUsageContext = with(target) { ): DefaultKotlinUsageContext? {
if (project.multiplatformExtensionOrNull == null || !project.kotlinPropertiesProvider.mppResourcesPublication) return null
var targetRegistersResourcesForPublication = false var targetRegistersResourcesForPublication = false
val resourcesVariant = DefaultKotlinUsageContext( val resourcesVariant = DefaultKotlinUsageContext(
compilation = compilation, compilation = compilation,
@@ -89,16 +89,11 @@ constructor(
) )
) )
if (project.kotlinPropertiesProvider.mppResourcesPublication) { usageContexts.addIfNotNull(
project.multiplatformExtensionOrNull?.let { setUpResourcesVariant(
usageContexts.add( mainCompilation
it.setUpResourcesVariant( )
this, )
mainCompilation
)
)
}
}
val result = createKotlinVariant(componentName, mainCompilation, usageContexts) val result = createKotlinVariant(componentName, mainCompilation, usageContexts)
@@ -83,14 +83,11 @@ abstract class KotlinNativeTarget @Inject constructor(
) )
) )
if (project.kotlinPropertiesProvider.mppResourcesPublication) { mutableUsageContexts.addIfNotNull(
mutableUsageContexts.add( setUpResourcesVariant(
project.multiplatformExtension.setUpResourcesVariant( mainCompilation
this,
mainCompilation,
)
) )
} )
val result = createKotlinVariant(targetName, mainCompilation, mutableUsageContexts) val result = createKotlinVariant(targetName, mainCompilation, mutableUsageContexts)