From e8b341e977df1c552dcbce3a4b49590e29c3a221 Mon Sep 17 00:00:00 2001 From: Sergey Bogolepov Date: Thu, 12 Mar 2020 13:09:36 +0700 Subject: [PATCH] [cinterop] Minor refactoring Get rid of unneeded `LibraryCreationArguments` class and allow adding multiple bitcode files. --- .../interop/gen/jvm/InteropLibraryCreation.kt | 38 +++++++++---------- .../kotlin/native/interop/gen/jvm/main.kt | 5 +-- 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/InteropLibraryCreation.kt b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/InteropLibraryCreation.kt index 79dfb219fde..f16642397b7 100644 --- a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/InteropLibraryCreation.kt +++ b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/InteropLibraryCreation.kt @@ -24,18 +24,16 @@ import org.jetbrains.kotlin.library.impl.BuiltInsPlatform import org.jetbrains.kotlin.util.removeSuffixIfPresent import java.util.* -data class LibraryCreationArguments( - val metadata: KlibModuleMetadata, - val outputPath: String, - val moduleName: String, - val nativeBitcodePath: String, - val target: KonanTarget, - val manifest: Properties, - val dependencies: List, - val nopack: Boolean -) - -fun createInteropLibrary(arguments: LibraryCreationArguments) { +fun createInteropLibrary( + metadata: KlibModuleMetadata, + outputPath: String, + moduleName: String, + nativeBitcodeFiles: List, + target: KonanTarget, + manifest: Properties, + dependencies: List, + nopack: Boolean +) { val version = KotlinLibraryVersioning( libraryVersion = null, abiVersion = KotlinAbiVersion.CURRENT, @@ -43,21 +41,21 @@ fun createInteropLibrary(arguments: LibraryCreationArguments) { metadataVersion = KlibMetadataVersion.INSTANCE.toString(), irVersion = KlibIrVersion.INSTANCE.toString() ) - val outputPathWithoutExtension = arguments.outputPath.removeSuffixIfPresent(".klib") + val outputPathWithoutExtension = outputPath.removeSuffixIfPresent(".klib") KonanLibraryWriterImpl( File(outputPathWithoutExtension), - arguments.moduleName, + moduleName, version, - arguments.target, + target, BuiltInsPlatform.NATIVE, - nopack = arguments.nopack + nopack = nopack ).apply { - val metadata = arguments.metadata.write(ChunkingWriteStrategy()) + val metadata = metadata.write(ChunkingWriteStrategy()) addMetadata(SerializedMetadata(metadata.header, metadata.fragments, metadata.fragmentNames)) - addNativeBitcode(arguments.nativeBitcodePath) - addManifestAddend(arguments.manifest) - addLinkDependencies(arguments.dependencies) + nativeBitcodeFiles.forEach(this::addNativeBitcode) + addManifestAddend(manifest) + addLinkDependencies(dependencies) commit() } } diff --git a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/main.kt b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/main.kt index 0309bcfa94c..9f4876b2fc2 100644 --- a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/main.kt +++ b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/main.kt @@ -334,9 +334,9 @@ private fun processCLib(args: Array, additionalArgs: Map = argsToCompiler(staticLibraries, libraryPaths) } is StubIrDriver.Result.Metadata -> { - val args = LibraryCreationArguments( + createInteropLibrary( metadata = stubIrOutput.metadata, - nativeBitcodePath = nativeOutputPath, + nativeBitcodeFiles = listOf(nativeOutputPath), target = tool.target, moduleName = moduleName, outputPath = cinteropArguments.output, @@ -344,7 +344,6 @@ private fun processCLib(args: Array, additionalArgs: Map = dependencies = allLibraryDependencies, nopack = cinteropArguments.nopack ) - createInteropLibrary(args) return null } }