Dropped outdated klib version compatibility mechanisms
This commit is contained in:
-6
@@ -19,8 +19,6 @@ import org.jetbrains.kotlin.util.Logger
|
|||||||
class JsLibraryResolver(
|
class JsLibraryResolver(
|
||||||
repositories: List<String>,
|
repositories: List<String>,
|
||||||
directLibs: List<String>,
|
directLibs: List<String>,
|
||||||
knownAbiVersions: List<KotlinAbiVersion>?,
|
|
||||||
knownCompilerVersions: List<CompilerVersion>?,
|
|
||||||
distributionKlib: String?,
|
distributionKlib: String?,
|
||||||
localKotlinDir: String?,
|
localKotlinDir: String?,
|
||||||
skipCurrentDir: Boolean,
|
skipCurrentDir: Boolean,
|
||||||
@@ -28,8 +26,6 @@ class JsLibraryResolver(
|
|||||||
) : KotlinLibraryProperResolverWithAttributes<KotlinLibrary>(
|
) : KotlinLibraryProperResolverWithAttributes<KotlinLibrary>(
|
||||||
repositories,
|
repositories,
|
||||||
directLibs,
|
directLibs,
|
||||||
knownAbiVersions,
|
|
||||||
knownCompilerVersions,
|
|
||||||
distributionKlib,
|
distributionKlib,
|
||||||
localKotlinDir,
|
localKotlinDir,
|
||||||
skipCurrentDir,
|
skipCurrentDir,
|
||||||
@@ -48,8 +44,6 @@ fun jsResolveLibraries(libraries: List<String>, logger: Logger): KotlinLibraryRe
|
|||||||
val libraryResolver = JsLibraryResolver(
|
val libraryResolver = JsLibraryResolver(
|
||||||
repositories = emptyList(),
|
repositories = emptyList(),
|
||||||
directLibs = libraryAbsolutePaths,
|
directLibs = libraryAbsolutePaths,
|
||||||
knownAbiVersions = listOf(KotlinAbiVersion.CURRENT),
|
|
||||||
knownCompilerVersions = emptyList<CompilerVersion>(),
|
|
||||||
distributionKlib = null,
|
distributionKlib = null,
|
||||||
localKotlinDir = null,
|
localKotlinDir = null,
|
||||||
skipCurrentDir = false,
|
skipCurrentDir = false,
|
||||||
|
|||||||
-6
@@ -21,8 +21,6 @@ val jvmLibrariesProvidedByDefault = setOf("stdlib", "kotlin")
|
|||||||
class JvmLibraryResolver(
|
class JvmLibraryResolver(
|
||||||
repositories: List<String>,
|
repositories: List<String>,
|
||||||
directLibs: List<String>,
|
directLibs: List<String>,
|
||||||
knownAbiVersions: List<KotlinAbiVersion>?,
|
|
||||||
knownCompilerVersions: List<CompilerVersion>?,
|
|
||||||
distributionKlib: String?,
|
distributionKlib: String?,
|
||||||
localKotlinDir: String?,
|
localKotlinDir: String?,
|
||||||
skipCurrentDir: Boolean,
|
skipCurrentDir: Boolean,
|
||||||
@@ -30,8 +28,6 @@ class JvmLibraryResolver(
|
|||||||
) : KotlinLibraryProperResolverWithAttributes<KotlinLibrary>(
|
) : KotlinLibraryProperResolverWithAttributes<KotlinLibrary>(
|
||||||
repositories,
|
repositories,
|
||||||
directLibs,
|
directLibs,
|
||||||
knownAbiVersions,
|
|
||||||
knownCompilerVersions,
|
|
||||||
distributionKlib,
|
distributionKlib,
|
||||||
localKotlinDir,
|
localKotlinDir,
|
||||||
skipCurrentDir,
|
skipCurrentDir,
|
||||||
@@ -54,8 +50,6 @@ fun jvmResolveLibraries(libraries: List<String>, logger: Logger): KotlinLibraryR
|
|||||||
val libraryResolver = JvmLibraryResolver(
|
val libraryResolver = JvmLibraryResolver(
|
||||||
repositories = emptyList(),
|
repositories = emptyList(),
|
||||||
directLibs = libraryAbsolutePaths,
|
directLibs = libraryAbsolutePaths,
|
||||||
knownAbiVersions = listOf(KotlinAbiVersion.CURRENT),
|
|
||||||
knownCompilerVersions = emptyList<CompilerVersion>(),
|
|
||||||
distributionKlib = null,
|
distributionKlib = null,
|
||||||
localKotlinDir = null,
|
localKotlinDir = null,
|
||||||
skipCurrentDir = false,
|
skipCurrentDir = false,
|
||||||
|
|||||||
@@ -20,11 +20,6 @@ interface SearchPathResolver<L : KotlinLibrary> : WithLogger {
|
|||||||
fun isProvidedByDefault(unresolved: UnresolvedLibrary): Boolean = false
|
fun isProvidedByDefault(unresolved: UnresolvedLibrary): Boolean = false
|
||||||
}
|
}
|
||||||
|
|
||||||
interface SearchPathResolverWithAttributes<L : KotlinLibrary> : SearchPathResolver<L> {
|
|
||||||
val knownAbiVersions: List<KotlinAbiVersion>?
|
|
||||||
val knownCompilerVersions: List<CompilerVersion>?
|
|
||||||
}
|
|
||||||
|
|
||||||
// This is a simple library resolver that only cares for file names.
|
// This is a simple library resolver that only cares for file names.
|
||||||
abstract class KotlinLibrarySearchPathResolver<L : KotlinLibrary>(
|
abstract class KotlinLibrarySearchPathResolver<L : KotlinLibrary>(
|
||||||
repositories: List<String>,
|
repositories: List<String>,
|
||||||
@@ -215,15 +210,13 @@ fun CompilerVersion.compatible(other: CompilerVersion) =
|
|||||||
abstract class KotlinLibraryProperResolverWithAttributes<L : KotlinLibrary>(
|
abstract class KotlinLibraryProperResolverWithAttributes<L : KotlinLibrary>(
|
||||||
repositories: List<String>,
|
repositories: List<String>,
|
||||||
directLibs: List<String>,
|
directLibs: List<String>,
|
||||||
override val knownAbiVersions: List<KotlinAbiVersion>?,
|
|
||||||
override val knownCompilerVersions: List<CompilerVersion>?,
|
|
||||||
distributionKlib: String?,
|
distributionKlib: String?,
|
||||||
localKotlinDir: String?,
|
localKotlinDir: String?,
|
||||||
skipCurrentDir: Boolean,
|
skipCurrentDir: Boolean,
|
||||||
override val logger: Logger,
|
override val logger: Logger,
|
||||||
private val knownIrProviders: List<String>
|
private val knownIrProviders: List<String>
|
||||||
) : KotlinLibrarySearchPathResolver<L>(repositories, directLibs, distributionKlib, localKotlinDir, skipCurrentDir, logger),
|
) : KotlinLibrarySearchPathResolver<L>(repositories, directLibs, distributionKlib, localKotlinDir, skipCurrentDir, logger),
|
||||||
SearchPathResolverWithAttributes<L> {
|
SearchPathResolver<L> {
|
||||||
override fun libraryMatch(candidate: L, unresolved: UnresolvedLibrary): Boolean {
|
override fun libraryMatch(candidate: L, unresolved: UnresolvedLibrary): Boolean {
|
||||||
val candidatePath = candidate.libraryFile.absolutePath
|
val candidatePath = candidate.libraryFile.absolutePath
|
||||||
|
|
||||||
@@ -231,13 +224,8 @@ abstract class KotlinLibraryProperResolverWithAttributes<L : KotlinLibrary>(
|
|||||||
val candidateAbiVersion = candidate.versions.abiVersion
|
val candidateAbiVersion = candidate.versions.abiVersion
|
||||||
val candidateLibraryVersion = candidate.versions.libraryVersion
|
val candidateLibraryVersion = candidate.versions.libraryVersion
|
||||||
|
|
||||||
|
if (candidateAbiVersion?.isCompatible() != true) {
|
||||||
val abiVersionMatch = candidateAbiVersion != null &&
|
logger.warning("skipping $candidatePath. Incompatible abi version. Expected '${KotlinAbiVersion.CURRENT}', found '${candidateAbiVersion}'. The library produced by ${candidateCompilerVersion} compiler")
|
||||||
knownAbiVersions != null &&
|
|
||||||
knownAbiVersions!!.contains(candidateAbiVersion)
|
|
||||||
|
|
||||||
if (!abiVersionMatch) {
|
|
||||||
logger.warning("skipping $candidatePath. The abi versions don't match. Expected '${knownAbiVersions}', found '${candidateAbiVersion}'. The library produced by ${candidateCompilerVersion} compiler")
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -262,11 +250,10 @@ abstract class KotlinLibraryProperResolverWithAttributes<L : KotlinLibrary>(
|
|||||||
|
|
||||||
class SingleKlibComponentResolver(
|
class SingleKlibComponentResolver(
|
||||||
klibFile: String,
|
klibFile: String,
|
||||||
knownAbiVersions: List<KotlinAbiVersion>?,
|
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
knownIrProviders: List<String>
|
knownIrProviders: List<String>
|
||||||
) : KotlinLibraryProperResolverWithAttributes<KotlinLibrary>(
|
) : KotlinLibraryProperResolverWithAttributes<KotlinLibrary>(
|
||||||
emptyList(), listOf(klibFile), knownAbiVersions, emptyList(),
|
emptyList(), listOf(klibFile),
|
||||||
null, null, false, logger, knownIrProviders
|
null, null, false, logger, knownIrProviders
|
||||||
) {
|
) {
|
||||||
override fun libraryComponentBuilder(file: File, isDefault: Boolean) = createKotlinLibraryComponents(file, isDefault)
|
override fun libraryComponentBuilder(file: File, isDefault: Boolean) = createKotlinLibraryComponents(file, isDefault)
|
||||||
@@ -287,7 +274,7 @@ class SingleKlibComponentResolver(
|
|||||||
object CompilerSingleFileKlibResolveStrategy : SingleFileKlibResolveStrategy {
|
object CompilerSingleFileKlibResolveStrategy : SingleFileKlibResolveStrategy {
|
||||||
override fun resolve(libraryFile: File, logger: Logger) =
|
override fun resolve(libraryFile: File, logger: Logger) =
|
||||||
SingleKlibComponentResolver(
|
SingleKlibComponentResolver(
|
||||||
libraryFile.absolutePath, listOf(KotlinAbiVersion.CURRENT), logger, emptyList()
|
libraryFile.absolutePath, logger, emptyList()
|
||||||
).resolve(libraryFile.absolutePath)
|
).resolve(libraryFile.absolutePath)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -303,6 +290,6 @@ class CompilerSingleFileKlibResolveAllowingIrProvidersStrategy(
|
|||||||
) : SingleFileKlibResolveStrategy {
|
) : SingleFileKlibResolveStrategy {
|
||||||
override fun resolve(libraryFile: File, logger: Logger) =
|
override fun resolve(libraryFile: File, logger: Logger) =
|
||||||
SingleKlibComponentResolver(
|
SingleKlibComponentResolver(
|
||||||
libraryFile.absolutePath, listOf(KotlinAbiVersion.CURRENT), logger, knownIrProviders
|
libraryFile.absolutePath, logger, knownIrProviders
|
||||||
).resolve(libraryFile.absolutePath)
|
).resolve(libraryFile.absolutePath)
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user