From 244094501bc3f74c39de4024b652c900f842084f Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Wed, 14 Sep 2022 11:11:18 +0200 Subject: [PATCH] [Gradle][MPP] Fix isSharedNative condition in getHostSpecificSourceSets ^KT-48135 WIP --- .../targets/metadata/KotlinMetadataTargetConfigurator.kt | 8 ++++---- .../kotlin/gradle/targets/native/KotlinNativeTarget.kt | 9 +-------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt index 948fb95c808..e43607cc9bf 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt @@ -120,6 +120,7 @@ class KotlinMetadataTargetConfigurator : val tasksProvider = KotlinTasksProvider() KotlinCommonSourceSetProcessor(compilation, tasksProvider) } + is KotlinSharedNativeCompilation -> NativeSharedCompilationProcessor(compilation) else -> error("unsupported compilation type ${compilation::class.qualifiedName}") } @@ -306,6 +307,7 @@ class KotlinMetadataTargetConfigurator : target, platformCompilations.map { (it as AbstractKotlinNativeCompilation).konanTarget } ) + else -> KotlinCommonCompilationFactory(target) } @@ -567,10 +569,8 @@ internal fun createMetadataDependencyTransformationClasspath( } internal fun isSharedNativeSourceSet(sourceSet: KotlinSourceSet): Boolean { - val compilations = sourceSet.internal.compilations - return compilations.isNotEmpty() && compilations.all { - it.platformType == KotlinPlatformType.common || it.platformType == KotlinPlatformType.native - } + val compilations = sourceSet.internal.compilations.filterNot { it.platformType == KotlinPlatformType.common } + return compilations.isNotEmpty() && compilations.all { it.platformType == KotlinPlatformType.native } } internal fun dependsOnClosureWithInterCompilationDependencies(sourceSet: KotlinSourceSet): Set = 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 0a15d27cf21..37ec9a23ff6 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 @@ -16,12 +16,8 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinNativeBinaryContainer import org.jetbrains.kotlin.gradle.dsl.kotlinExtension import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.* -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.isNativeShared -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.variantsContainingFragment import org.jetbrains.kotlin.gradle.plugin.sources.internal import org.jetbrains.kotlin.gradle.targets.metadata.* -import org.jetbrains.kotlin.gradle.targets.metadata.filesWithUnpackedArchives -import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled import org.jetbrains.kotlin.gradle.targets.native.KotlinNativeBinaryTestRun import org.jetbrains.kotlin.gradle.targets.native.KotlinNativeHostTestRun import org.jetbrains.kotlin.gradle.targets.native.KotlinNativeSimulatorTestRun @@ -181,10 +177,7 @@ internal fun getHostSpecificFragments( internal fun getHostSpecificSourceSets(project: Project): Set { return getHostSpecificElements( project.kotlinExtension.sourceSets, - isNativeShared = { sourceSet -> - val compilations = sourceSet.internal.compilations - compilations.isNotEmpty() && compilations.all { it.platformType == KotlinPlatformType.native } - }, + isNativeShared = { sourceSet -> isSharedNativeSourceSet(sourceSet) }, getKonanTargets = { sourceSet -> sourceSet.internal.compilations .filterIsInstance()