[Commonizer] Add compatible metadata version checks
This commit is contained in:
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.descriptors.commonizer
|
|||||||
import org.jetbrains.kotlin.backend.common.serialization.DescriptorTable
|
import org.jetbrains.kotlin.backend.common.serialization.DescriptorTable
|
||||||
import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataMonolithicSerializer
|
import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataMonolithicSerializer
|
||||||
import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataVersion
|
import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataVersion
|
||||||
|
import org.jetbrains.kotlin.backend.common.serialization.metadata.metadataVersion
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.ModuleForCommonization.DeserializedModule
|
import org.jetbrains.kotlin.descriptors.commonizer.ModuleForCommonization.DeserializedModule
|
||||||
@@ -169,8 +170,24 @@ private fun loadModules(repository: File, targets: List<KonanTarget>): Map<Input
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun loadLibrary(location: File): KotlinLibrary {
|
private fun loadLibrary(location: File): KotlinLibrary {
|
||||||
if (!location.isDirectory) printErrorAndExit("library not found: $location")
|
if (!location.isDirectory)
|
||||||
return createKotlinLibrary(KFile(location.path))
|
printErrorAndExit("library not found: $location")
|
||||||
|
|
||||||
|
val library = createKotlinLibrary(KFile(location.path))
|
||||||
|
|
||||||
|
if (library.versions.metadataVersion == null)
|
||||||
|
printErrorAndExit("library does not have metadata version specified in manifest: $location")
|
||||||
|
|
||||||
|
val metadataVersion = library.metadataVersion
|
||||||
|
if (!metadataVersion.isCompatible())
|
||||||
|
printErrorAndExit(
|
||||||
|
"""
|
||||||
|
library has incompatible metadata version $metadataVersion: $location,
|
||||||
|
please make sure that all libraries passed to commonizer compatible metadata version ${KlibMetadataVersion.INSTANCE}
|
||||||
|
""".trimIndent()
|
||||||
|
)
|
||||||
|
|
||||||
|
return library
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun commonize(modulesByTargets: Map<InputTarget, List<ModuleForCommonization>>): CommonizationPerformed {
|
private fun commonize(modulesByTargets: Map<InputTarget, List<ModuleForCommonization>>): CommonizationPerformed {
|
||||||
|
|||||||
Reference in New Issue
Block a user