[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 org.jetbrains.kotlin.util.removeSuffixIfPresent
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
data class LibraryCreationArguments(
|
fun createInteropLibrary(
|
||||||
val metadata: KlibModuleMetadata,
|
metadata: KlibModuleMetadata,
|
||||||
val outputPath: String,
|
outputPath: String,
|
||||||
val moduleName: String,
|
moduleName: String,
|
||||||
val nativeBitcodePath: String,
|
nativeBitcodeFiles: List<String>,
|
||||||
val target: KonanTarget,
|
target: KonanTarget,
|
||||||
val manifest: Properties,
|
manifest: Properties,
|
||||||
val dependencies: List<KotlinLibrary>,
|
dependencies: List<KotlinLibrary>,
|
||||||
val nopack: Boolean
|
nopack: Boolean
|
||||||
)
|
) {
|
||||||
|
|
||||||
fun createInteropLibrary(arguments: LibraryCreationArguments) {
|
|
||||||
val version = KotlinLibraryVersioning(
|
val version = KotlinLibraryVersioning(
|
||||||
libraryVersion = null,
|
libraryVersion = null,
|
||||||
abiVersion = KotlinAbiVersion.CURRENT,
|
abiVersion = KotlinAbiVersion.CURRENT,
|
||||||
@@ -43,21 +41,21 @@ fun createInteropLibrary(arguments: LibraryCreationArguments) {
|
|||||||
metadataVersion = KlibMetadataVersion.INSTANCE.toString(),
|
metadataVersion = KlibMetadataVersion.INSTANCE.toString(),
|
||||||
irVersion = KlibIrVersion.INSTANCE.toString()
|
irVersion = KlibIrVersion.INSTANCE.toString()
|
||||||
)
|
)
|
||||||
val outputPathWithoutExtension = arguments.outputPath.removeSuffixIfPresent(".klib")
|
val outputPathWithoutExtension = outputPath.removeSuffixIfPresent(".klib")
|
||||||
KonanLibraryWriterImpl(
|
KonanLibraryWriterImpl(
|
||||||
File(outputPathWithoutExtension),
|
File(outputPathWithoutExtension),
|
||||||
arguments.moduleName,
|
moduleName,
|
||||||
version,
|
version,
|
||||||
arguments.target,
|
target,
|
||||||
|
|
||||||
BuiltInsPlatform.NATIVE,
|
BuiltInsPlatform.NATIVE,
|
||||||
nopack = arguments.nopack
|
nopack = nopack
|
||||||
).apply {
|
).apply {
|
||||||
val metadata = arguments.metadata.write(ChunkingWriteStrategy())
|
val metadata = metadata.write(ChunkingWriteStrategy())
|
||||||
addMetadata(SerializedMetadata(metadata.header, metadata.fragments, metadata.fragmentNames))
|
addMetadata(SerializedMetadata(metadata.header, metadata.fragments, metadata.fragmentNames))
|
||||||
addNativeBitcode(arguments.nativeBitcodePath)
|
nativeBitcodeFiles.forEach(this::addNativeBitcode)
|
||||||
addManifestAddend(arguments.manifest)
|
addManifestAddend(manifest)
|
||||||
addLinkDependencies(arguments.dependencies)
|
addLinkDependencies(dependencies)
|
||||||
commit()
|
commit()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-3
@@ -334,9 +334,9 @@ private fun processCLib(args: Array<String>, additionalArgs: Map<String, Any> =
|
|||||||
argsToCompiler(staticLibraries, libraryPaths)
|
argsToCompiler(staticLibraries, libraryPaths)
|
||||||
}
|
}
|
||||||
is StubIrDriver.Result.Metadata -> {
|
is StubIrDriver.Result.Metadata -> {
|
||||||
val args = LibraryCreationArguments(
|
createInteropLibrary(
|
||||||
metadata = stubIrOutput.metadata,
|
metadata = stubIrOutput.metadata,
|
||||||
nativeBitcodePath = nativeOutputPath,
|
nativeBitcodeFiles = listOf(nativeOutputPath),
|
||||||
target = tool.target,
|
target = tool.target,
|
||||||
moduleName = moduleName,
|
moduleName = moduleName,
|
||||||
outputPath = cinteropArguments.output,
|
outputPath = cinteropArguments.output,
|
||||||
@@ -344,7 +344,6 @@ private fun processCLib(args: Array<String>, additionalArgs: Map<String, Any> =
|
|||||||
dependencies = allLibraryDependencies,
|
dependencies = allLibraryDependencies,
|
||||||
nopack = cinteropArguments.nopack
|
nopack = cinteropArguments.nopack
|
||||||
)
|
)
|
||||||
createInteropLibrary(args)
|
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user