From 5485a6d6cd17c501e966e17f7ed68d5da77104c0 Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Fri, 6 Aug 2021 12:04:28 +0200 Subject: [PATCH] [Gradle] CInteropCommonizerDependent: Drop bad condition on compilations The dropped condition is bad, since source sets like 'commonMain' might still participate in a 'compileKotlinMetadata' task, which is not a shared native compilation. It is absolutely okay to just rely on the return of 'getCommonizerTarget': If a shared commonizer target is returned, then the source set is guaranteed to be a shared native source set. ^KT-48118 Verification Pending --- .../internal/CInteropCommonizerDependent.kt | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropCommonizerDependent.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropCommonizerDependent.kt index 568bbb1c00a..1ca7482d676 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropCommonizerDependent.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropCommonizerDependent.kt @@ -10,8 +10,11 @@ import org.jetbrains.kotlin.commonizer.SharedCommonizerTarget import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet -import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.plugin.mpp.CompilationSourceSetUtil.compilationsBySourceSets +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeCompilation +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinSharedNativeCompilation +import org.jetbrains.kotlin.gradle.plugin.mpp.associateWithTransitiveClosure +import org.jetbrains.kotlin.gradle.plugin.mpp.kotlinSourceSetsIncludingDefault import org.jetbrains.kotlin.gradle.plugin.sources.resolveAllDependsOnSourceSets import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropIdentifier.Scope import org.jetbrains.kotlin.gradle.utils.UnsafeApi @@ -82,17 +85,10 @@ internal fun CInteropCommonizerDependent.Factory.from(compilation: KotlinSharedN } internal fun CInteropCommonizerDependent.Factory.from(project: Project, sourceSet: KotlinSourceSet): CInteropCommonizerDependent? { - val target = project.getCommonizerTarget(sourceSet) as? SharedCommonizerTarget ?: return null - val compilations = compilationsBySourceSets(project)[sourceSet] ?: return null - - /* Non-native or non 'shared native' source sets can return eagerly */ - if (compilations.any { compilation -> compilation !is AbstractKotlinNativeCompilation }) { - return null - } - return from( - target = target, - compilations = compilations.filterIsInstance().toSet() + target = project.getCommonizerTarget(sourceSet) as? SharedCommonizerTarget ?: return null, + compilations = (compilationsBySourceSets(project)[sourceSet] ?: return null) + .filterIsInstance().toSet() ) }