[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 -> kotlin.sourceSets.forEach { sourceSet ->
val target = getCommonizerTarget(sourceSet) ?: return@forEach val target = getCommonizerTarget(sourceSet) ?: return@forEach
addDependencies(sourceSet, getNativeDistributionDependencies(target)) 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) return project.filesProvider { targetOutputDirectory.listLibraryFiles() }.builtBy(this)
} }
private fun Project.addDependencies(sourceSet: KotlinSourceSet, libraries: FileCollection) { private fun Project.addDependencies(
getMetadataCompilationForSourceSet(sourceSet)?.let { compilation -> sourceSet: KotlinSourceSet, libraries: FileCollection, isCompilationDependency: Boolean = true, isIdeDependency: Boolean = true
compilation.compileDependencyFiles += libraries ) {
if (isCompilationDependency) {
getMetadataCompilationForSourceSet(sourceSet)?.let { compilation ->
compilation.compileDependencyFiles += libraries
}
} }
if (sourceSet is DefaultKotlinSourceSet) {
if (isIdeDependency && sourceSet is DefaultKotlinSourceSet) {
val metadataConfigurationName = val metadataConfigurationName =
if (project.isIntransitiveMetadataConfigurationEnabled) sourceSet.intransitiveMetadataConfigurationName if (project.isIntransitiveMetadataConfigurationEnabled) sourceSet.intransitiveMetadataConfigurationName
else sourceSet.implementationMetadataConfigurationName else sourceSet.implementationMetadataConfigurationName