Plumbing KlibMetadataVersion and KlibIrVersion values to klib manifest
This commit is contained in:
committed by
alexander-gorshenev
parent
bf12f7eee0
commit
b0f077ff4b
+27
@@ -0,0 +1,27 @@
|
||||
package org.jetbrains.kotlin.backend.common.serialization
|
||||
|
||||
import org.jetbrains.kotlin.library.KLIB_PROPERTY_IR_VERSION
|
||||
import org.jetbrains.kotlin.library.KotlinLibrary
|
||||
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
|
||||
|
||||
class KlibIrVersion(vararg numbers: Int) : BinaryVersion(*numbers) {
|
||||
|
||||
override fun isCompatible(): Boolean = isCompatibleTo(INSTANCE)
|
||||
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
val INSTANCE = KlibIrVersion(1, 0, 0)
|
||||
|
||||
@JvmField
|
||||
val INVALID_VERSION = KlibIrVersion(-1, -1, -1)
|
||||
}
|
||||
}
|
||||
|
||||
val KotlinLibrary.metadataVersion: KlibIrVersion
|
||||
get() {
|
||||
val versionString = manifestProperties.getProperty(KLIB_PROPERTY_IR_VERSION)
|
||||
val versionIntArray = BinaryVersion.parseVersionArray(versionString)
|
||||
?: error("Could not parse metadata version: $versionString")
|
||||
return KlibIrVersion(*versionIntArray)
|
||||
}
|
||||
+1
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.backend.common.serialization.DescriptorTable
|
||||
import org.jetbrains.kotlin.backend.common.serialization.isExpectMember
|
||||
import org.jetbrains.kotlin.backend.common.serialization.isSerializableExpectClass
|
||||
import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataSerializer
|
||||
import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataVersion
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
|
||||
|
||||
Reference in New Issue
Block a user