[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
This commit is contained in:
committed by
Space
parent
b1c5c10233
commit
5485a6d6cd
+7
-11
@@ -10,8 +10,11 @@ import org.jetbrains.kotlin.commonizer.SharedCommonizerTarget
|
|||||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
|
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.KotlinSourceSet
|
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.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.plugin.sources.resolveAllDependsOnSourceSets
|
||||||
import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropIdentifier.Scope
|
import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropIdentifier.Scope
|
||||||
import org.jetbrains.kotlin.gradle.utils.UnsafeApi
|
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? {
|
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(
|
return from(
|
||||||
target = target,
|
target = project.getCommonizerTarget(sourceSet) as? SharedCommonizerTarget ?: return null,
|
||||||
compilations = compilations.filterIsInstance<KotlinNativeCompilation>().toSet()
|
compilations = (compilationsBySourceSets(project)[sourceSet] ?: return null)
|
||||||
|
.filterIsInstance<KotlinNativeCompilation>().toSet()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user