Demote fatal error to warning on unresolved libraries mentioned in Klib's manifest 'depends' for metadata compilation
^KT-46107
This commit is contained in:
committed by
Space
parent
95a1a4e66a
commit
22ea5c7de4
+8
-7
@@ -25,11 +25,12 @@ import org.jetbrains.kotlin.library.resolver.KotlinResolvedLibrary
|
||||
import org.jetbrains.kotlin.library.resolver.LibraryOrder
|
||||
import org.jetbrains.kotlin.util.WithLogger
|
||||
|
||||
fun <L: KotlinLibrary> SearchPathResolver<L>.libraryResolver()
|
||||
= KotlinLibraryResolverImpl<L>(this)
|
||||
fun <L: KotlinLibrary> SearchPathResolver<L>.libraryResolver(resolveManifestDependenciesLenient: Boolean = false)
|
||||
= KotlinLibraryResolverImpl<L>(this, resolveManifestDependenciesLenient)
|
||||
|
||||
class KotlinLibraryResolverImpl<L: KotlinLibrary>(
|
||||
override val searchPathResolver: SearchPathResolver<L>
|
||||
class KotlinLibraryResolverImpl<L: KotlinLibrary> internal constructor(
|
||||
override val searchPathResolver: SearchPathResolver<L>,
|
||||
val resolveManifestDependenciesLenient: Boolean
|
||||
): KotlinLibraryResolver<L>, WithLogger by searchPathResolver {
|
||||
|
||||
override fun resolveWithDependencies(
|
||||
@@ -56,7 +57,7 @@ class KotlinLibraryResolverImpl<L: KotlinLibrary>(
|
||||
): List<KotlinLibrary> {
|
||||
|
||||
val userProvidedLibraries = unresolvedLibraries.asSequence()
|
||||
.map { searchPathResolver.resolve(it) }
|
||||
.mapNotNull { searchPathResolver.resolve(it) }
|
||||
.toList()
|
||||
|
||||
val defaultLibraries = searchPathResolver.defaultLinks(noStdLib, noDefaultLibs, noEndorsedLibs)
|
||||
@@ -115,10 +116,10 @@ class KotlinLibraryResolverImpl<L: KotlinLibrary>(
|
||||
var newDependencies = rootLibraries
|
||||
do {
|
||||
newDependencies = newDependencies.map { library: KotlinResolvedLibraryImpl ->
|
||||
library.library.unresolvedDependencies.asSequence()
|
||||
library.library.unresolvedDependencies(resolveManifestDependenciesLenient).asSequence()
|
||||
|
||||
.filterNot { searchPathResolver.isProvidedByDefault(it) }
|
||||
.map { KotlinResolvedLibraryImpl(searchPathResolver.resolve(it)) }
|
||||
.mapNotNull { KotlinResolvedLibraryImpl(searchPathResolver.resolve(it) ?: return@mapNotNull null) }
|
||||
.map { resolved ->
|
||||
val absoluteFile = resolved.library.libraryFile.absoluteFile
|
||||
if (absoluteFile in cache) {
|
||||
|
||||
Reference in New Issue
Block a user