From 80e964c1662ba3e161e97a7ac13f85b185e3bb77 Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Mon, 15 Mar 2021 10:11:51 +0100 Subject: [PATCH] [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 --- .../descriptors/commonizer/cli/nativeTasks.kt | 7 ++----- .../repository/KonanDistributionRepository.kt | 21 ------------------- 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cli/nativeTasks.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cli/nativeTasks.kt index 8746ce5e318..37810ab8a1b 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cli/nativeTasks.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cli/nativeTasks.kt @@ -70,11 +70,8 @@ internal class NativeKlibCommonize(options: Collection>) : 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, diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/repository/KonanDistributionRepository.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/repository/KonanDistributionRepository.kt index 49643f934d4..111cda2efa7 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/repository/KonanDistributionRepository.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/repository/KonanDistributionRepository.kt @@ -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, 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>> = 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>() - 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 }