[KLIB] Use -Xmetadata-klib to produce metadata KLIBs
With this change a new `-Xmetadata-klib` CLI flag becomes the preferable way to instruct K2MetadataCompiler to produce metadata KLIBs. The old `-Xexpect-actual-linker` flag still works for K2MetadataCompiler, but that would last just for a short transition period until the necessary changes are made in the Gradle plugin. The K2NativeCompiler does not work anymore with `-Xexpect-actual-linker` and respects only the `-Xmetadata-klib` flag. This is not an issue since the Gradle plugin anyway supplies both flags for Native metadata compilations. ^KT-61136
This commit is contained in:
committed by
Space Team
parent
848c88b1a5
commit
38a67f3d30
+8
-6
@@ -36,7 +36,6 @@ internal val SerializerPhase = createSimpleNamedCompilerPhase<PhaseContext, Seri
|
||||
outputIfNotEnabled = { _, _, _, _ -> SerializerOutput(null, null, null, emptyList()) }
|
||||
) { context: PhaseContext, input: SerializerInput ->
|
||||
val config = context.config
|
||||
val expectActualLinker = config.configuration.get(CommonConfigurationKeys.EXPECT_ACTUAL_LINKER) ?: false
|
||||
val messageLogger = config.configuration.get(IrMessageLogger.IR_MESSAGE_LOGGER) ?: IrMessageLogger.None
|
||||
val relativePathBase = config.configuration.get(CommonConfigurationKeys.KLIB_RELATIVE_PATH_BASES) ?: emptyList()
|
||||
val normalizeAbsolutePaths = config.configuration.get(CommonConfigurationKeys.KLIB_NORMALIZE_ABSOLUTE_PATH) ?: false
|
||||
@@ -55,11 +54,14 @@ internal val SerializerPhase = createSimpleNamedCompilerPhase<PhaseContext, Seri
|
||||
}
|
||||
|
||||
val serializer = KlibMetadataMonolithicSerializer(
|
||||
config.configuration.languageVersionSettings,
|
||||
config.configuration.get(CommonConfigurationKeys.METADATA_VERSION)!!,
|
||||
config.project,
|
||||
exportKDoc = context.shouldExportKDoc(),
|
||||
!expectActualLinker, includeOnlyModuleContent = true, produceHeaderKlib = input.produceHeaderKlib)
|
||||
languageVersionSettings = config.configuration.languageVersionSettings,
|
||||
metadataVersion = config.configuration.get(CommonConfigurationKeys.METADATA_VERSION)!!,
|
||||
project = config.project,
|
||||
exportKDoc = context.shouldExportKDoc(),
|
||||
skipExpects = !config.metadataKlib,
|
||||
includeOnlyModuleContent = true,
|
||||
produceHeaderKlib = input.produceHeaderKlib
|
||||
)
|
||||
val serializedMetadata = serializer.serializeModule(input.moduleDescriptor)
|
||||
val neededLibraries = config.librariesWithDependencies()
|
||||
SerializerOutput(serializedMetadata, serializedIr, null, neededLibraries)
|
||||
|
||||
Reference in New Issue
Block a user