[Gradle][MPP] Fix isSharedNative condition in getHostSpecificSourceSets

^KT-48135 WIP
This commit is contained in:
Sebastian Sellmair
2022-09-14 11:11:18 +02:00
committed by Space
parent 74594c05ca
commit 244094501b
2 changed files with 5 additions and 12 deletions
@@ -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<KotlinSourceSet> =
@@ -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<KotlinSourceSet> {
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<KotlinNativeCompilation>()