Move tools to resolveSingleFileKlib

This commit is contained in:
Alexander Gorshenev
2020-01-17 17:00:52 +03:00
committed by alexander-gorshenev
parent 7390e74bbd
commit fcce35c06f
3 changed files with 28 additions and 4 deletions
@@ -2,6 +2,7 @@ package org.jetbrains.kotlin.library
import org.jetbrains.kotlin.konan.CompilerVersion
import org.jetbrains.kotlin.konan.file.File
import org.jetbrains.kotlin.library.impl.createKotlinLibraryComponents
import org.jetbrains.kotlin.library.impl.isPre_1_4_Library
import org.jetbrains.kotlin.util.*
@@ -224,4 +225,26 @@ abstract class KotlinLibraryProperResolverWithAttributes<L: KotlinLibrary>(
return true
}
}
class SingleKlibComponentResolver(
klibFile: String,
knownAbiVersions: List<KotlinAbiVersion>?,
logger: Logger
) : KotlinLibraryProperResolverWithAttributes<KotlinLibrary>(
emptyList(), listOf(klibFile), knownAbiVersions, emptyList(),
null, null, true, logger, emptyList()
) {
override fun libraryComponentBuilder(file: File, isDefault: Boolean) = createKotlinLibraryComponents(file, isDefault)
}
fun resolveSingleFileKlib(libraryFile: File,
logger: Logger = object : Logger {
override fun log(message: String) {}
override fun error(message: String) = kotlin.error("e: $message")
override fun warning(message: String) {}
override fun fatal(message: String) = kotlin.error("e: $message")
}
): KotlinLibrary {
return SingleKlibComponentResolver(libraryFile.absolutePath, emptyList(), logger).resolve(libraryFile.absolutePath)
}