Add builtins_platform property to klib manifest
This commit is contained in:
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||
import org.jetbrains.kotlin.descriptors.konan.DeserializedKlibModuleOrigin
|
||||
import org.jetbrains.kotlin.konan.util.KlibMetadataFactories
|
||||
import org.jetbrains.kotlin.library.*
|
||||
import org.jetbrains.kotlin.library.impl.BuiltInsPlatform
|
||||
import org.jetbrains.kotlin.library.impl.buildKoltinLibrary
|
||||
import org.jetbrains.kotlin.library.metadata.NativeTypeTransformer
|
||||
import org.jetbrains.kotlin.library.metadata.NullFlexibleTypeDeserializer
|
||||
@@ -89,7 +90,8 @@ internal class K2MetadataKlibSerializer(private val metadataVersion: BuiltInsBin
|
||||
configuration[CommonConfigurationKeys.MODULE_NAME]!!,
|
||||
nopack = true,
|
||||
manifestProperties = null,
|
||||
dataFlowGraph = null
|
||||
dataFlowGraph = null,
|
||||
builtInsPlatform = BuiltInsPlatform.COMMON
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@ import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
||||
import org.jetbrains.kotlin.konan.properties.propertyList
|
||||
import org.jetbrains.kotlin.konan.util.KlibMetadataFactories
|
||||
import org.jetbrains.kotlin.library.*
|
||||
import org.jetbrains.kotlin.library.impl.BuiltInsPlatform
|
||||
import org.jetbrains.kotlin.library.impl.buildKoltinLibrary
|
||||
import org.jetbrains.kotlin.library.resolver.KotlinLibraryResolveResult
|
||||
import org.jetbrains.kotlin.library.resolver.TopologicalLibraryOrder
|
||||
@@ -504,7 +505,8 @@ fun serializeModuleIntoKlib(
|
||||
moduleName = moduleName,
|
||||
nopack = nopack,
|
||||
output = klibPath,
|
||||
versions = versions
|
||||
versions = versions,
|
||||
builtInsPlatform = BuiltInsPlatform.JS
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ const val KLIB_PROPERTY_DEPENDS = "depends"
|
||||
const val KLIB_PROPERTY_PACKAGE = "package"
|
||||
const val KLIB_PROPERTY_INTEROP = "interop"
|
||||
const val KLIB_PROPERTY_EXPORT_FORWARD_DECLARATIONS = "exportForwardDeclarations"
|
||||
const val KLIB_PROPERTY_BUILTINS_PLATFORM = "builtins_platform"
|
||||
|
||||
/**
|
||||
* Abstractions for getting access to the information stored inside of Kotlin/Native library.
|
||||
|
||||
+12
-3
@@ -22,6 +22,7 @@ open class BaseWriterImpl(
|
||||
val libraryLayout: KotlinLibraryLayoutForWriter,
|
||||
moduleName: String,
|
||||
override val versions: KotlinLibraryVersioning,
|
||||
builtInsPlatform: BuiltInsPlatform,
|
||||
val nopack: Boolean = false
|
||||
) : BaseWriter {
|
||||
|
||||
@@ -37,6 +38,8 @@ open class BaseWriterImpl(
|
||||
// TODO: <name>:<hash> will go somewhere around here.
|
||||
manifestProperties.setProperty(KLIB_PROPERTY_UNIQUE_NAME, moduleName)
|
||||
manifestProperties.writeKonanLibraryVersioning(versions)
|
||||
if (builtInsPlatform != BuiltInsPlatform.COMMON)
|
||||
manifestProperties.setProperty(KLIB_PROPERTY_BUILTINS_PLATFORM, builtInsPlatform.name)
|
||||
}
|
||||
|
||||
override fun addLinkDependencies(libraries: List<KotlinLibrary>) {
|
||||
@@ -78,11 +81,12 @@ class KoltinLibraryWriterImpl(
|
||||
libDir: File,
|
||||
moduleName: String,
|
||||
versions: KotlinLibraryVersioning,
|
||||
builtInsPlatform: BuiltInsPlatform,
|
||||
nopack: Boolean = false,
|
||||
|
||||
val layout: KotlinLibraryLayoutForWriter = KotlinLibraryLayoutForWriter(libDir),
|
||||
|
||||
val base: BaseWriter = BaseWriterImpl(layout, moduleName, versions, nopack),
|
||||
val base: BaseWriter = BaseWriterImpl(layout, moduleName, versions, builtInsPlatform, nopack),
|
||||
metadata: MetadataWriter = MetadataWriterImpl(layout),
|
||||
ir: IrWriter = IrMonoliticWriterImpl(layout)
|
||||
// ir: IrWriter = IrPerFileWriterImpl(layout)
|
||||
@@ -98,10 +102,11 @@ fun buildKoltinLibrary(
|
||||
moduleName: String,
|
||||
nopack: Boolean,
|
||||
manifestProperties: Properties?,
|
||||
dataFlowGraph: ByteArray?
|
||||
dataFlowGraph: ByteArray?,
|
||||
builtInsPlatform: BuiltInsPlatform
|
||||
): KotlinLibraryLayout {
|
||||
|
||||
val library = KoltinLibraryWriterImpl(File(output), moduleName, versions, nopack)
|
||||
val library = KoltinLibraryWriterImpl(File(output), moduleName, versions, builtInsPlatform, nopack)
|
||||
|
||||
library.addMetadata(metadata)
|
||||
|
||||
@@ -115,4 +120,8 @@ fun buildKoltinLibrary(
|
||||
|
||||
library.commit()
|
||||
return library.layout
|
||||
}
|
||||
|
||||
enum class BuiltInsPlatform {
|
||||
JVM, JS, NATIVE, COMMON
|
||||
}
|
||||
+8
-1
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.library.KotlinLibrary
|
||||
import org.jetbrains.kotlin.library.SerializedMetadata
|
||||
import org.jetbrains.kotlin.library.ToolingSingleFileKlibResolveStrategy
|
||||
import org.jetbrains.kotlin.library.impl.BaseWriterImpl
|
||||
import org.jetbrains.kotlin.library.impl.BuiltInsPlatform
|
||||
import org.jetbrains.kotlin.library.impl.KoltinLibraryWriterImpl
|
||||
import org.jetbrains.kotlin.library.resolveSingleFileKlib
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
@@ -215,7 +216,13 @@ class NativeDistributionCommonizer(
|
||||
manifestData: NativeSensitiveManifestData,
|
||||
destination: File
|
||||
) {
|
||||
val library = KoltinLibraryWriterImpl(KFile(destination.path), manifestData.uniqueName, manifestData.versions, nopack = true)
|
||||
val library = KoltinLibraryWriterImpl(
|
||||
KFile(destination.path),
|
||||
manifestData.uniqueName,
|
||||
manifestData.versions,
|
||||
BuiltInsPlatform.NATIVE,
|
||||
nopack = true
|
||||
)
|
||||
library.addMetadata(metadata)
|
||||
manifestData.applyTo(library.base as BaseWriterImpl)
|
||||
library.commit()
|
||||
|
||||
Reference in New Issue
Block a user