Only allow version triples for klib metadata and ir versions
This commit is contained in:
committed by
alexander-gorshenev
parent
b0f077ff4b
commit
a923e0d130
@@ -317,7 +317,6 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun createMetadataVersion(versionArray: IntArray): BinaryVersion {
|
override fun createMetadataVersion(versionArray: IntArray): BinaryVersion {
|
||||||
// TODO: Support metadata versions for klibs
|
|
||||||
return KlibMetadataVersion(*versionArray)
|
return KlibMetadataVersion(*versionArray)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-2
@@ -4,7 +4,7 @@ import org.jetbrains.kotlin.library.KLIB_PROPERTY_IR_VERSION
|
|||||||
import org.jetbrains.kotlin.library.KotlinLibrary
|
import org.jetbrains.kotlin.library.KotlinLibrary
|
||||||
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
|
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
|
||||||
|
|
||||||
class KlibIrVersion(vararg numbers: Int) : BinaryVersion(*numbers) {
|
class KlibIrVersion(major: Int, minor: Int, patch: Int) : BinaryVersion(major, minor, patch) {
|
||||||
|
|
||||||
override fun isCompatible(): Boolean = isCompatibleTo(INSTANCE)
|
override fun isCompatible(): Boolean = isCompatibleTo(INSTANCE)
|
||||||
|
|
||||||
@@ -18,10 +18,15 @@ class KlibIrVersion(vararg numbers: Int) : BinaryVersion(*numbers) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun KlibIrVersion(vararg values: Int): KlibIrVersion {
|
||||||
|
if (values.size != 3) error("Ir version should be in major.minor.patch format: $values")
|
||||||
|
return KlibIrVersion(values[0], values[1], values[2])
|
||||||
|
}
|
||||||
|
|
||||||
val KotlinLibrary.metadataVersion: KlibIrVersion
|
val KotlinLibrary.metadataVersion: KlibIrVersion
|
||||||
get() {
|
get() {
|
||||||
val versionString = manifestProperties.getProperty(KLIB_PROPERTY_IR_VERSION)
|
val versionString = manifestProperties.getProperty(KLIB_PROPERTY_IR_VERSION)
|
||||||
val versionIntArray = BinaryVersion.parseVersionArray(versionString)
|
val versionIntArray = BinaryVersion.parseVersionArray(versionString)
|
||||||
?: error("Could not parse metadata version: $versionString")
|
?: error("Could not parse ir version: $versionString")
|
||||||
return KlibIrVersion(*versionIntArray)
|
return KlibIrVersion(*versionIntArray)
|
||||||
}
|
}
|
||||||
+7
-2
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.library.KLIB_PROPERTY_METADATA_VERSION
|
|||||||
import org.jetbrains.kotlin.library.KotlinLibrary
|
import org.jetbrains.kotlin.library.KotlinLibrary
|
||||||
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
|
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
|
||||||
|
|
||||||
class KlibMetadataVersion(vararg numbers: Int) : BinaryVersion(*numbers) {
|
class KlibMetadataVersion(major: Int, minor: Int, patch: Int) : BinaryVersion(major, minor, patch) {
|
||||||
|
|
||||||
override fun isCompatible(): Boolean = isCompatibleTo(INSTANCE)
|
override fun isCompatible(): Boolean = isCompatibleTo(INSTANCE)
|
||||||
|
|
||||||
@@ -22,10 +22,15 @@ class KlibMetadataVersion(vararg numbers: Int) : BinaryVersion(*numbers) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun KlibMetadataVersion(vararg values: Int): KlibMetadataVersion {
|
||||||
|
if (values.size != 3) error("Metadata version should be in major.minor.patch format: $values")
|
||||||
|
return KlibMetadataVersion(values[0], values[1], values[2])
|
||||||
|
}
|
||||||
|
|
||||||
val KotlinLibrary.metadataVersion: KlibMetadataVersion
|
val KotlinLibrary.metadataVersion: KlibMetadataVersion
|
||||||
get() {
|
get() {
|
||||||
val versionString = manifestProperties.getProperty(KLIB_PROPERTY_METADATA_VERSION)
|
val versionString = manifestProperties.getProperty(KLIB_PROPERTY_METADATA_VERSION)
|
||||||
val versionIntArray = BinaryVersion.parseVersionArray(versionString)
|
val versionIntArray = BinaryVersion.parseVersionArray(versionString)
|
||||||
?: error("Could not parse ir version: $versionString")
|
?: error("Could not parse metadata version: $versionString")
|
||||||
return KlibMetadataVersion(*versionIntArray)
|
return KlibMetadataVersion(*versionIntArray)
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user