[cinterop] Minor refactoring
Get rid of unneeded `LibraryCreationArguments` class and allow adding multiple bitcode files.
This commit is contained in:
committed by
Sergey Bogolepov
parent
b42fd5592d
commit
e8b341e977
+18
-20
@@ -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<KotlinLibrary>,
|
||||
val nopack: Boolean
|
||||
)
|
||||
|
||||
fun createInteropLibrary(arguments: LibraryCreationArguments) {
|
||||
fun createInteropLibrary(
|
||||
metadata: KlibModuleMetadata,
|
||||
outputPath: String,
|
||||
moduleName: String,
|
||||
nativeBitcodeFiles: List<String>,
|
||||
target: KonanTarget,
|
||||
manifest: Properties,
|
||||
dependencies: List<KotlinLibrary>,
|
||||
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()
|
||||
}
|
||||
}
|
||||
|
||||
+2
-3
@@ -334,9 +334,9 @@ private fun processCLib(args: Array<String>, additionalArgs: Map<String, Any> =
|
||||
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<String>, additionalArgs: Map<String, Any> =
|
||||
dependencies = allLibraryDependencies,
|
||||
nopack = cinteropArguments.nopack
|
||||
)
|
||||
createInteropLibrary(args)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user