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.descriptors.konan.DeserializedKlibModuleOrigin
|
||||||
import org.jetbrains.kotlin.konan.util.KlibMetadataFactories
|
import org.jetbrains.kotlin.konan.util.KlibMetadataFactories
|
||||||
import org.jetbrains.kotlin.library.*
|
import org.jetbrains.kotlin.library.*
|
||||||
|
import org.jetbrains.kotlin.library.impl.BuiltInsPlatform
|
||||||
import org.jetbrains.kotlin.library.impl.buildKoltinLibrary
|
import org.jetbrains.kotlin.library.impl.buildKoltinLibrary
|
||||||
import org.jetbrains.kotlin.library.metadata.NativeTypeTransformer
|
import org.jetbrains.kotlin.library.metadata.NativeTypeTransformer
|
||||||
import org.jetbrains.kotlin.library.metadata.NullFlexibleTypeDeserializer
|
import org.jetbrains.kotlin.library.metadata.NullFlexibleTypeDeserializer
|
||||||
@@ -89,7 +90,8 @@ internal class K2MetadataKlibSerializer(private val metadataVersion: BuiltInsBin
|
|||||||
configuration[CommonConfigurationKeys.MODULE_NAME]!!,
|
configuration[CommonConfigurationKeys.MODULE_NAME]!!,
|
||||||
nopack = true,
|
nopack = true,
|
||||||
manifestProperties = null,
|
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.properties.propertyList
|
||||||
import org.jetbrains.kotlin.konan.util.KlibMetadataFactories
|
import org.jetbrains.kotlin.konan.util.KlibMetadataFactories
|
||||||
import org.jetbrains.kotlin.library.*
|
import org.jetbrains.kotlin.library.*
|
||||||
|
import org.jetbrains.kotlin.library.impl.BuiltInsPlatform
|
||||||
import org.jetbrains.kotlin.library.impl.buildKoltinLibrary
|
import org.jetbrains.kotlin.library.impl.buildKoltinLibrary
|
||||||
import org.jetbrains.kotlin.library.resolver.KotlinLibraryResolveResult
|
import org.jetbrains.kotlin.library.resolver.KotlinLibraryResolveResult
|
||||||
import org.jetbrains.kotlin.library.resolver.TopologicalLibraryOrder
|
import org.jetbrains.kotlin.library.resolver.TopologicalLibraryOrder
|
||||||
@@ -504,7 +505,8 @@ fun serializeModuleIntoKlib(
|
|||||||
moduleName = moduleName,
|
moduleName = moduleName,
|
||||||
nopack = nopack,
|
nopack = nopack,
|
||||||
output = klibPath,
|
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_PACKAGE = "package"
|
||||||
const val KLIB_PROPERTY_INTEROP = "interop"
|
const val KLIB_PROPERTY_INTEROP = "interop"
|
||||||
const val KLIB_PROPERTY_EXPORT_FORWARD_DECLARATIONS = "exportForwardDeclarations"
|
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.
|
* 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,
|
val libraryLayout: KotlinLibraryLayoutForWriter,
|
||||||
moduleName: String,
|
moduleName: String,
|
||||||
override val versions: KotlinLibraryVersioning,
|
override val versions: KotlinLibraryVersioning,
|
||||||
|
builtInsPlatform: BuiltInsPlatform,
|
||||||
val nopack: Boolean = false
|
val nopack: Boolean = false
|
||||||
) : BaseWriter {
|
) : BaseWriter {
|
||||||
|
|
||||||
@@ -37,6 +38,8 @@ open class BaseWriterImpl(
|
|||||||
// TODO: <name>:<hash> will go somewhere around here.
|
// TODO: <name>:<hash> will go somewhere around here.
|
||||||
manifestProperties.setProperty(KLIB_PROPERTY_UNIQUE_NAME, moduleName)
|
manifestProperties.setProperty(KLIB_PROPERTY_UNIQUE_NAME, moduleName)
|
||||||
manifestProperties.writeKonanLibraryVersioning(versions)
|
manifestProperties.writeKonanLibraryVersioning(versions)
|
||||||
|
if (builtInsPlatform != BuiltInsPlatform.COMMON)
|
||||||
|
manifestProperties.setProperty(KLIB_PROPERTY_BUILTINS_PLATFORM, builtInsPlatform.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun addLinkDependencies(libraries: List<KotlinLibrary>) {
|
override fun addLinkDependencies(libraries: List<KotlinLibrary>) {
|
||||||
@@ -78,11 +81,12 @@ class KoltinLibraryWriterImpl(
|
|||||||
libDir: File,
|
libDir: File,
|
||||||
moduleName: String,
|
moduleName: String,
|
||||||
versions: KotlinLibraryVersioning,
|
versions: KotlinLibraryVersioning,
|
||||||
|
builtInsPlatform: BuiltInsPlatform,
|
||||||
nopack: Boolean = false,
|
nopack: Boolean = false,
|
||||||
|
|
||||||
val layout: KotlinLibraryLayoutForWriter = KotlinLibraryLayoutForWriter(libDir),
|
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),
|
metadata: MetadataWriter = MetadataWriterImpl(layout),
|
||||||
ir: IrWriter = IrMonoliticWriterImpl(layout)
|
ir: IrWriter = IrMonoliticWriterImpl(layout)
|
||||||
// ir: IrWriter = IrPerFileWriterImpl(layout)
|
// ir: IrWriter = IrPerFileWriterImpl(layout)
|
||||||
@@ -98,10 +102,11 @@ fun buildKoltinLibrary(
|
|||||||
moduleName: String,
|
moduleName: String,
|
||||||
nopack: Boolean,
|
nopack: Boolean,
|
||||||
manifestProperties: Properties?,
|
manifestProperties: Properties?,
|
||||||
dataFlowGraph: ByteArray?
|
dataFlowGraph: ByteArray?,
|
||||||
|
builtInsPlatform: BuiltInsPlatform
|
||||||
): KotlinLibraryLayout {
|
): KotlinLibraryLayout {
|
||||||
|
|
||||||
val library = KoltinLibraryWriterImpl(File(output), moduleName, versions, nopack)
|
val library = KoltinLibraryWriterImpl(File(output), moduleName, versions, builtInsPlatform, nopack)
|
||||||
|
|
||||||
library.addMetadata(metadata)
|
library.addMetadata(metadata)
|
||||||
|
|
||||||
@@ -115,4 +120,8 @@ fun buildKoltinLibrary(
|
|||||||
|
|
||||||
library.commit()
|
library.commit()
|
||||||
return library.layout
|
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.SerializedMetadata
|
||||||
import org.jetbrains.kotlin.library.ToolingSingleFileKlibResolveStrategy
|
import org.jetbrains.kotlin.library.ToolingSingleFileKlibResolveStrategy
|
||||||
import org.jetbrains.kotlin.library.impl.BaseWriterImpl
|
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.impl.KoltinLibraryWriterImpl
|
||||||
import org.jetbrains.kotlin.library.resolveSingleFileKlib
|
import org.jetbrains.kotlin.library.resolveSingleFileKlib
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -215,7 +216,13 @@ class NativeDistributionCommonizer(
|
|||||||
manifestData: NativeSensitiveManifestData,
|
manifestData: NativeSensitiveManifestData,
|
||||||
destination: File
|
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)
|
library.addMetadata(metadata)
|
||||||
manifestData.applyTo(library.base as BaseWriterImpl)
|
manifestData.applyTo(library.base as BaseWriterImpl)
|
||||||
library.commit()
|
library.commit()
|
||||||
|
|||||||
Reference in New Issue
Block a user