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
+5
-3
@@ -81,7 +81,9 @@ class KonanConfig(val project: Project, val configuration: CompilerConfiguration
|
||||
internal val purgeUserLibs: Boolean
|
||||
get() = configuration.getBoolean(KonanConfigKeys.PURGE_USER_LIBS)
|
||||
|
||||
internal val resolve = KonanLibrariesResolveSupport(configuration, target, distribution)
|
||||
internal val resolve = KonanLibrariesResolveSupport(
|
||||
configuration, target, distribution, resolveManifestDependenciesLenient = metadataKlib
|
||||
)
|
||||
|
||||
internal val resolvedLibraries get() = resolve.resolvedLibraries
|
||||
|
||||
@@ -186,7 +188,7 @@ class KonanConfig(val project: Project, val configuration: CompilerConfiguration
|
||||
internal val nativeLibraries: List<String> =
|
||||
configuration.getList(KonanConfigKeys.NATIVE_LIBRARY_FILES)
|
||||
|
||||
internal val includeBinaries: List<String> =
|
||||
internal val includeBinaries: List<String> =
|
||||
configuration.getList(KonanConfigKeys.INCLUDED_BINARY_FILES)
|
||||
|
||||
internal val languageVersionSettings =
|
||||
@@ -202,5 +204,5 @@ class KonanConfig(val project: Project, val configuration: CompilerConfiguration
|
||||
internal val isInteropStubs: Boolean get() = manifestProperties?.getProperty("interop") == "true"
|
||||
}
|
||||
|
||||
fun CompilerConfiguration.report(priority: CompilerMessageSeverity, message: String)
|
||||
fun CompilerConfiguration.report(priority: CompilerMessageSeverity, message: String)
|
||||
= this.getNotNull(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY).report(priority, message)
|
||||
|
||||
+4
-5
@@ -8,10 +8,8 @@ package org.jetbrains.kotlin.backend.konan
|
||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.konan.CompilerVersion
|
||||
import org.jetbrains.kotlin.konan.file.File
|
||||
import org.jetbrains.kotlin.konan.library.defaultResolver
|
||||
import org.jetbrains.kotlin.konan.parseCompilerVersion
|
||||
import org.jetbrains.kotlin.konan.target.Distribution
|
||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||
import org.jetbrains.kotlin.library.UnresolvedLibrary
|
||||
@@ -22,7 +20,8 @@ import org.jetbrains.kotlin.util.Logger
|
||||
class KonanLibrariesResolveSupport(
|
||||
configuration: CompilerConfiguration,
|
||||
target: KonanTarget,
|
||||
distribution: Distribution
|
||||
distribution: Distribution,
|
||||
resolveManifestDependenciesLenient: Boolean
|
||||
) {
|
||||
private val includedLibraryFiles =
|
||||
configuration.getList(KonanConfigKeys.INCLUDED_LIBRARIES).map { File(it) }
|
||||
@@ -56,7 +55,7 @@ class KonanLibrariesResolveSupport(
|
||||
target,
|
||||
distribution,
|
||||
resolverLogger
|
||||
).libraryResolver()
|
||||
).libraryResolver(resolveManifestDependenciesLenient)
|
||||
|
||||
// We pass included libraries by absolute paths to avoid repository-based resolution for them.
|
||||
// Strictly speaking such "direct" libraries should be specially handled by the resolver, not by KonanConfig.
|
||||
@@ -80,4 +79,4 @@ class KonanLibrariesResolveSupport(
|
||||
|
||||
internal val includedLibraries =
|
||||
getIncludedLibraries(includedLibraryFiles, configuration, resolvedLibraries)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user