[Commonizer] NativeLibraryLoader: Improve error message when loading a library fails
This commit is contained in:
@@ -21,24 +21,31 @@ internal class DefaultNativeLibraryLoader(
|
|||||||
private val logger: Logger
|
private val logger: Logger
|
||||||
) : NativeLibraryLoader {
|
) : NativeLibraryLoader {
|
||||||
override fun invoke(file: File): NativeLibrary {
|
override fun invoke(file: File): NativeLibrary {
|
||||||
val library = resolveSingleFileKlib(
|
try {
|
||||||
libraryFile = org.jetbrains.kotlin.konan.file.File(file.path),
|
val library = resolveSingleFileKlib(
|
||||||
logger = logger,
|
libraryFile = org.jetbrains.kotlin.konan.file.File(file.path),
|
||||||
strategy = ToolingSingleFileKlibResolveStrategy
|
logger = logger,
|
||||||
)
|
strategy = ToolingSingleFileKlibResolveStrategy
|
||||||
|
)
|
||||||
|
|
||||||
if (library.versions.metadataVersion == null)
|
if (library.versions.metadataVersion == null)
|
||||||
logger.fatal("Library does not have metadata version specified in manifest: $file")
|
logger.fatal("Library does not have metadata version specified in manifest: $file")
|
||||||
|
|
||||||
val metadataVersion = library.metadataVersion
|
val metadataVersion = library.metadataVersion
|
||||||
if (metadataVersion?.isCompatible() != true)
|
if (metadataVersion?.isCompatible() != true)
|
||||||
logger.fatal(
|
logger.fatal(
|
||||||
"""
|
"""
|
||||||
Library has incompatible metadata version ${metadataVersion ?: "\"unknown\""}: $file
|
Library has incompatible metadata version ${metadataVersion ?: "\"unknown\""}: $file
|
||||||
Please make sure that all libraries passed to commonizer compatible metadata version ${KlibMetadataVersion.INSTANCE}
|
Please make sure that all libraries passed to commonizer compatible metadata version ${KlibMetadataVersion.INSTANCE}
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
|
)
|
||||||
|
return NativeLibrary(library)
|
||||||
|
} catch (cause: Throwable) {
|
||||||
|
throw NativeLibraryLoadingException(
|
||||||
|
"Failed loading library at ${file.path}", cause
|
||||||
)
|
)
|
||||||
|
}
|
||||||
return NativeLibrary(library)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal class NativeLibraryLoadingException(message: String, cause: Throwable? = null) : Exception(message, cause)
|
||||||
|
|||||||
Reference in New Issue
Block a user