[interop] Prepare interop driver for a metadata-only mode.
This commit is contained in:
committed by
Sergey Bogolepov
parent
8a8ba03f9e
commit
e8ad4712d3
+1
-1
@@ -83,7 +83,7 @@ private fun generatePlatformLibraries(target: String, inputDirectory: File, outp
|
||||
"-no-default-libs", "-no-endorsed-libs", "-Xpurge-user-libs",
|
||||
*def.depends.flatMap { listOf("-l", "$outputDirectory/${it.name}") }.toTypedArray())
|
||||
println("Processing ${def.name}...")
|
||||
K2Native.mainNoExit(invokeInterop("native", args))
|
||||
invokeInterop("native", args)?.let { K2Native.mainNoExit(it) }
|
||||
org.jetbrains.kotlin.cli.klib.main(arrayOf("install", outKlib,
|
||||
"-target", target,
|
||||
"-repository", "${outputDirectory.absolutePath}"
|
||||
|
||||
@@ -19,7 +19,11 @@ import org.jetbrains.kotlin.native.interop.tool.*
|
||||
// TODO: this function should eventually be eliminated from 'utilities'.
|
||||
// The interaction of interop and the compiler should be streamlined.
|
||||
|
||||
fun invokeInterop(flavor: String, args: Array<String>): Array<String> {
|
||||
/**
|
||||
* @return null if there is no need in compiler invocation.
|
||||
* Otherwise returns array of compiler args.
|
||||
*/
|
||||
fun invokeInterop(flavor: String, args: Array<String>): Array<String>? {
|
||||
val arguments = if (flavor == "native") CInteropArguments() else JSInteropArguments()
|
||||
arguments.argParser.parse(args)
|
||||
val outputFileName = arguments.output
|
||||
@@ -68,7 +72,9 @@ fun invokeInterop(flavor: String, args: Array<String>): Array<String> {
|
||||
additionalProperties.putAll(mapOf("cstubsname" to cstubsName, "import" to imports))
|
||||
}
|
||||
|
||||
|
||||
val cinteropArgsToCompiler = interop(flavor, args + additionalArgs, additionalProperties)
|
||||
?: return null // There is no need in compiler invocation if we're generating only metadata.
|
||||
|
||||
val nativeStubs =
|
||||
if (flavor == "wasm")
|
||||
|
||||
@@ -17,11 +17,11 @@ private fun mainImpl(args: Array<String>, konancMain: (Array<String>) -> Unit) {
|
||||
konancMain(utilityArgs)
|
||||
"cinterop" -> {
|
||||
val konancArgs = invokeInterop("native", utilityArgs)
|
||||
konancMain(konancArgs)
|
||||
konancArgs?.let { konancMain(it) }
|
||||
}
|
||||
"jsinterop" -> {
|
||||
val konancArgs = invokeInterop("wasm", utilityArgs)
|
||||
konancMain(konancArgs)
|
||||
konancArgs?.let { konancMain(it) }
|
||||
}
|
||||
"klib" ->
|
||||
klibMain(utilityArgs)
|
||||
|
||||
Reference in New Issue
Block a user