From 71a03a7c7df483eb71c4c50fcbad621234466282 Mon Sep 17 00:00:00 2001 From: Anton Lakotka Date: Tue, 23 Jan 2024 09:17:25 +0100 Subject: [PATCH] [K/N] Exclude stdlib from icedLibraries cache when passed explicitly As part of KT-61559 stdlib is intended to be passed explicitly from Gradle. However, CacheBuilder was not aware of such configuration and was failing during cache building. Author of this commit is Igor Chevdar ^KT-61430 Verification Pending ^KT-61559 Verification Pending --- .../jetbrains/kotlin/backend/konan/CacheBuilder.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CacheBuilder.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CacheBuilder.kt index 68b8d8ad379..f0dae1baab9 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CacheBuilder.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CacheBuilder.kt @@ -82,17 +82,18 @@ class CacheBuilder( val externalLibrariesToCache = mutableListOf() val icedLibraries = mutableListOf() + val stdlib = konanConfig.distribution.stdlib allLibraries.forEach { library -> - val isDefaultOrExternal = library.isDefault || library.isExternal - val cache = konanConfig.cachedLibraries.getLibraryCache(library, !isDefaultOrExternal) + val isSubjectOfIC = !library.isDefault && !library.isExternal && !library.libraryName.startsWith(stdlib) + val cache = konanConfig.cachedLibraries.getLibraryCache(library, allowIncomplete = isSubjectOfIC) cache?.let { caches[library] = it cacheRootDirectories[library] = it.rootDirectory } - if (isDefaultOrExternal) { - if (cache == null) externalLibrariesToCache += library - } else { + if (isSubjectOfIC) { icedLibraries += library + } else { + if (cache == null) externalLibrariesToCache += library } library.unresolvedDependencies.forEach { val dependency = uniqueNameToLibrary[it.path]!!