[Commonizer] NativeKlibCommonize: Remove optimization for only loading dependencies from native distribution
This is removed for now, because of test failures on Windows. It seems like the dependencies in the klib produced by Windows are not correct. See: https://youtrack.jetbrains.com/issue/KT-45471 ^KT-45471
This commit is contained in:
committed by
Space
parent
b777c89bc8
commit
80e964c166
+2
-5
@@ -70,11 +70,8 @@ internal class NativeKlibCommonize(options: Collection<Option<*>>) : Task(option
|
||||
LibraryCommonizer(
|
||||
konanDistribution = distribution,
|
||||
repository = repository,
|
||||
dependencies =
|
||||
KonanDistributionRepository(
|
||||
distribution, commonizerTargets.toSet(), libraryLoader,
|
||||
filter = KonanDistributionRepository.Filter.onlyDependenciesOf(repository)
|
||||
) + FilesRepository(dependencyLibraries.toSet(), libraryLoader),
|
||||
dependencies = KonanDistributionRepository(distribution, commonizerTargets.toSet(), libraryLoader) +
|
||||
FilesRepository(dependencyLibraries.toSet(), libraryLoader),
|
||||
libraryLoader = libraryLoader,
|
||||
targets = commonizerTargets,
|
||||
resultsConsumer = resultsConsumer,
|
||||
|
||||
-21
@@ -10,20 +10,12 @@ import org.jetbrains.kotlin.descriptors.commonizer.LeafCommonizerTarget
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.NativeLibraryLoader
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.konan.NativeLibrary
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.platformLibsDir
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.repository.KonanDistributionRepository.Filter
|
||||
|
||||
internal class KonanDistributionRepository(
|
||||
konanDistribution: KonanDistribution,
|
||||
targets: Set<LeafCommonizerTarget>,
|
||||
libraryLoader: NativeLibraryLoader,
|
||||
filter: Filter = Filter.none()
|
||||
) : Repository {
|
||||
fun interface Filter {
|
||||
operator fun invoke(target: LeafCommonizerTarget, library: NativeLibrary): Boolean
|
||||
|
||||
companion object Factory
|
||||
}
|
||||
|
||||
private val librariesByTarget: Map<LeafCommonizerTarget, Lazy<Set<NativeLibrary>>> =
|
||||
targets.associateWith { target ->
|
||||
lazy {
|
||||
@@ -33,7 +25,6 @@ internal class KonanDistributionRepository(
|
||||
?.listFiles()
|
||||
.orEmpty().toList()
|
||||
.map { libraryLoader(it) }
|
||||
.filter { filter(target, it) }
|
||||
.toSet()
|
||||
}
|
||||
}
|
||||
@@ -42,15 +33,3 @@ internal class KonanDistributionRepository(
|
||||
return librariesByTarget[target]?.value ?: error("Missing target $target")
|
||||
}
|
||||
}
|
||||
|
||||
internal fun Filter.Factory.onlyDependenciesOf(libraries: Repository): Filter {
|
||||
val requestedDependencies = mutableMapOf<LeafCommonizerTarget, Set<String>>()
|
||||
return Filter { target, dependency ->
|
||||
val requestedDependenciesForTarget = requestedDependencies.getOrPut(target) {
|
||||
libraries.getLibraries(target).flatMap { library -> library.manifestData.dependencies }.toSet()
|
||||
}
|
||||
dependency.manifestData.uniqueName in requestedDependenciesForTarget
|
||||
}
|
||||
}
|
||||
|
||||
internal fun Filter.Factory.none() = Filter { _, _ -> true }
|
||||
|
||||
Reference in New Issue
Block a user