[KLIB] Lift up -Xmetadata-klib CLI key from Native to Common args
This is a precondition for obsoleting and finally removing `-Xexpect-actual-linker` CLI key, which became useless since the removal of ExpectActualTable. ^KT-61136
This commit is contained in:
committed by
Space Team
parent
53f994263f
commit
848c88b1a5
+1
-1
@@ -68,7 +68,7 @@ internal inline fun <F> PhaseContext.firFrontend(
|
||||
resolvedLibraries,
|
||||
dependencyList,
|
||||
extensionRegistrars,
|
||||
metadataCompilationMode = configuration.get(KonanConfigKeys.METADATA_KLIB) ?: false,
|
||||
metadataCompilationMode = config.metadataKlib,
|
||||
isCommonSource = isCommonSource,
|
||||
fileBelongsToModule = fileBelongsToModule,
|
||||
registerExtraComponents = {
|
||||
|
||||
+1
-1
@@ -224,7 +224,7 @@ class KonanConfig(val project: Project, val configuration: CompilerConfiguration
|
||||
|
||||
internal val produce get() = configuration.get(KonanConfigKeys.PRODUCE)!!
|
||||
|
||||
internal val metadataKlib get() = configuration.get(KonanConfigKeys.METADATA_KLIB)!!
|
||||
internal val metadataKlib get() = configuration.getBoolean(CommonConfigurationKeys.METADATA_KLIB)
|
||||
|
||||
internal val headerKlibPath get() = configuration.get(KonanConfigKeys.HEADER_KLIB)
|
||||
|
||||
|
||||
-2
@@ -73,8 +73,6 @@ class KonanConfigKeys {
|
||||
= CompilerConfigurationKey.create("list available targets")
|
||||
val MANIFEST_FILE: CompilerConfigurationKey<String?>
|
||||
= CompilerConfigurationKey.create("provide manifest addend file")
|
||||
val METADATA_KLIB: CompilerConfigurationKey<Boolean>
|
||||
= CompilerConfigurationKey.create("metadata klib")
|
||||
val HEADER_KLIB: CompilerConfigurationKey<String?>
|
||||
= CompilerConfigurationKey.create("path to file where header klib should be produced")
|
||||
val MODULE_NAME: CompilerConfigurationKey<String?>
|
||||
|
||||
-1
@@ -55,7 +55,6 @@ fun CompilerConfiguration.setupFromArguments(arguments: K2NativeCompilerArgument
|
||||
val outputKind = CompilerOutputKind.valueOf(
|
||||
(arguments.produce ?: "program").uppercase())
|
||||
put(PRODUCE, outputKind)
|
||||
put(METADATA_KLIB, arguments.metadataKlib)
|
||||
putIfNotNull(HEADER_KLIB, arguments.headerKlibPath)
|
||||
|
||||
arguments.libraryVersion?.let { put(LIBRARY_VERSION, it) }
|
||||
|
||||
+4
-3
@@ -90,7 +90,7 @@ internal class DynamicCompilerDriver : CompilerDriver() {
|
||||
|
||||
private fun produceKlib(engine: PhaseEngine<PhaseContext>, config: KonanConfig, environment: KotlinCoreEnvironment) {
|
||||
val serializerOutput = if (environment.configuration.getBoolean(CommonConfigurationKeys.USE_FIR))
|
||||
serializeKLibK2(engine, environment)
|
||||
serializeKLibK2(engine, config, environment)
|
||||
else
|
||||
serializeKlibK1(engine, config, environment)
|
||||
serializerOutput?.let { engine.writeKlib(it) }
|
||||
@@ -98,18 +98,19 @@ internal class DynamicCompilerDriver : CompilerDriver() {
|
||||
|
||||
private fun serializeKLibK2(
|
||||
engine: PhaseEngine<PhaseContext>,
|
||||
config: KonanConfig,
|
||||
environment: KotlinCoreEnvironment
|
||||
): SerializerOutput? {
|
||||
val frontendOutput = engine.runFirFrontend(environment)
|
||||
if (frontendOutput is FirOutput.ShouldNotGenerateCode) return null
|
||||
require(frontendOutput is FirOutput.Full)
|
||||
|
||||
return if (environment.configuration.getBoolean(KonanConfigKeys.METADATA_KLIB)) {
|
||||
return if (config.metadataKlib) {
|
||||
engine.runFirSerializer(frontendOutput)
|
||||
} else {
|
||||
val fir2IrOutput = engine.runFir2Ir(frontendOutput)
|
||||
|
||||
val headerKlibPath = environment.configuration.get(KonanConfigKeys.HEADER_KLIB)
|
||||
val headerKlibPath = config.headerKlibPath
|
||||
if (!headerKlibPath.isNullOrEmpty()) {
|
||||
val headerKlib = engine.runFir2IrSerializer(FirSerializerInput(fir2IrOutput, produceHeaderKlib = true))
|
||||
engine.writeKlib(headerKlib, headerKlibPath)
|
||||
|
||||
Reference in New Issue
Block a user