diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/InternalKotlinSourceSet.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/InternalKotlinSourceSet.kt index b34e4df695a..571cfcf6097 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/InternalKotlinSourceSet.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/InternalKotlinSourceSet.kt @@ -26,6 +26,6 @@ internal interface InternalKotlinSourceSet : KotlinSourceSet { } internal suspend fun InternalKotlinSourceSet.awaitPlatformCompilations(): Set> { - KotlinPluginLifecycle.Stage.FinaliseRefinesEdges.await() + KotlinPluginLifecycle.Stage.AfterFinaliseRefinesEdges.await() return compilations.filter { it !is KotlinMetadataCompilation }.toSet() } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/commonizerTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/commonizerTarget.kt index b430142a4f3..681f59fa4a8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/commonizerTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/commonizerTarget.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.gradle.plugin.await import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinSharedNativeCompilation +import org.jetbrains.kotlin.gradle.plugin.sources.awaitPlatformCompilations import org.jetbrains.kotlin.gradle.plugin.sources.internal import org.jetbrains.kotlin.gradle.utils.Future import org.jetbrains.kotlin.gradle.utils.future @@ -23,9 +24,7 @@ import org.jetbrains.kotlin.gradle.utils.futureExtension import org.jetbrains.kotlin.tooling.core.UnsafeApi internal val KotlinSourceSet.commonizerTarget: Future by futureExtension { - KotlinPluginLifecycle.Stage.AfterFinaliseRefinesEdges.await() - @OptIn(UnsafeApi::class) - inferCommonizerTarget(this) + inferCommonizerTarget(internal.awaitPlatformCompilations()) } internal val KotlinSourceSet.sharedCommonizerTarget: Future @@ -39,7 +38,15 @@ internal val KotlinCompilation<*>.commonizerTarget: Future by @UnsafeApi("Use sourceSet.commonizerTarget instead") internal fun inferCommonizerTarget(sourceSet: KotlinSourceSet): CommonizerTarget? { - val allCompilationLeafTargets = sourceSet.internal.compilations + val platformCompilations = sourceSet.internal.compilations + .filter { compilation -> compilation !is KotlinMetadataCompilation } + return inferCommonizerTarget(platformCompilations) +} + + +private fun inferCommonizerTarget(compilations: Iterable>): CommonizerTarget? { + @OptIn(UnsafeApi::class) + val allCompilationLeafTargets = compilations .filter { compilation -> compilation !is KotlinMetadataCompilation } .map { compilation -> inferCommonizerTarget(compilation) ?: return null } .allLeaves()