[Gradle] Shared Native compilations: Don't explicitly add stdlib dependency

Shared Native Compilations seem to already implicitly add a
dependency on the stdlib. Adding it again will result in a
'library included more than once' warning.

^KT-46257 Verification Pending
This commit is contained in:
sebastian.sellmair
2021-09-07 09:35:07 +02:00
committed by Space
parent 8fe176f605
commit 1076654bd9
@@ -33,7 +33,14 @@ internal fun Project.setupKotlinNativePlatformDependencies() {
kotlin.sourceSets.forEach { sourceSet ->
val target = getCommonizerTarget(sourceSet) ?: return@forEach
addDependencies(sourceSet, getNativeDistributionDependencies(target))
addDependencies(sourceSet, project.filesProvider { setOf(konanDistribution.stdlib) })
addDependencies(
sourceSet, project.filesProvider { setOf(konanDistribution.stdlib) },
/*
Shared Native compilations already implicitly add this dependency.
Adding it again will result in a warning
*/
isCompilationDependency = false
)
}
}
@@ -53,11 +60,16 @@ private fun NativeDistributionCommonizerTask.getCommonizedPlatformLibrariesFor(t
return project.filesProvider { targetOutputDirectory.listLibraryFiles() }.builtBy(this)
}
private fun Project.addDependencies(sourceSet: KotlinSourceSet, libraries: FileCollection) {
getMetadataCompilationForSourceSet(sourceSet)?.let { compilation ->
compilation.compileDependencyFiles += libraries
private fun Project.addDependencies(
sourceSet: KotlinSourceSet, libraries: FileCollection, isCompilationDependency: Boolean = true, isIdeDependency: Boolean = true
) {
if (isCompilationDependency) {
getMetadataCompilationForSourceSet(sourceSet)?.let { compilation ->
compilation.compileDependencyFiles += libraries
}
}
if (sourceSet is DefaultKotlinSourceSet) {
if (isIdeDependency && sourceSet is DefaultKotlinSourceSet) {
val metadataConfigurationName =
if (project.isIntransitiveMetadataConfigurationEnabled) sourceSet.intransitiveMetadataConfigurationName
else sourceSet.implementationMetadataConfigurationName