[PL] Commonize Native & JS compiler configuration keys

This commit is contained in:
Dmitriy Dolovov
2023-03-20 12:45:00 +01:00
committed by Space Team
parent 831611d577
commit a450866db3
14 changed files with 70 additions and 65 deletions
@@ -115,7 +115,7 @@ internal class Context(
override fun dispose() {}
override val partialLinkageSupport = createPartialLinkageSupportForLowerings(
config.partialLinkageEnabled,
config.partialLinkageConfig.isEnabled,
irBuiltIns,
configuration.irMessageLogger
)
@@ -12,10 +12,8 @@ import org.jetbrains.kotlin.backend.konan.serialization.KonanUserVisibleIrModule
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
import org.jetbrains.kotlin.cli.common.config.kotlinSourceRoots
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
import org.jetbrains.kotlin.config.CommonConfigurationKeys
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.KotlinCompilerVersion
import org.jetbrains.kotlin.config.PartialLinkageLogLevel
import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.ir.linkage.partial.partialLinkageConfig
import org.jetbrains.kotlin.konan.file.File
import org.jetbrains.kotlin.konan.library.KonanLibrary
import org.jetbrains.kotlin.konan.properties.loadProperties
@@ -400,8 +398,7 @@ class KonanConfig(val project: Project, val configuration: CompilerConfiguration
internal val useDebugInfoInNativeLibs= configuration.get(BinaryOptions.stripDebugInfoFromNativeLibs) == false
internal val partialLinkageEnabled = configuration[KonanConfigKeys.PARTIAL_LINKAGE] ?: false
internal val partialLinkageLogLevel = configuration[KonanConfigKeys.PARTIAL_LINKAGE_LOG_LEVEL] ?: PartialLinkageLogLevel.DEFAULT
internal val partialLinkageConfig = configuration.partialLinkageConfig
internal val additionalCacheFlags by lazy { platformManager.loader(target).additionalCacheFlags }
@@ -435,7 +432,7 @@ class KonanConfig(val project: Project, val configuration: CompilerConfiguration
private val userCacheFlavorString = buildString {
appendCommonCacheFlavor()
if (partialLinkageEnabled) append("-pl")
if (partialLinkageConfig.isEnabled) append("-pl")
}
private val systemCacheRootDirectory = File(distribution.konanHome).child("klib").child("cache")
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.backend.konan
import org.jetbrains.kotlin.config.CompilerConfigurationKey
import org.jetbrains.kotlin.config.PartialLinkageLogLevel
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
class KonanConfigKeys {
@@ -159,8 +158,6 @@ class KonanConfigKeys {
val LLVM_VARIANT: CompilerConfigurationKey<LlvmVariant?> = CompilerConfigurationKey.create("llvm variant")
val RUNTIME_LOGS: CompilerConfigurationKey<String> = CompilerConfigurationKey.create("enable runtime logging")
val LAZY_IR_FOR_CACHES: CompilerConfigurationKey<Boolean> = CompilerConfigurationKey.create("use lazy IR for cached libraries")
val PARTIAL_LINKAGE: CompilerConfigurationKey<Boolean> = CompilerConfigurationKey.create("enables partial linkage mode")
val PARTIAL_LINKAGE_LOG_LEVEL: CompilerConfigurationKey<PartialLinkageLogLevel> = CompilerConfigurationKey.create("partial linkage compile-time log level")
val TEST_DUMP_OUTPUT_PATH: CompilerConfigurationKey<String?> = CompilerConfigurationKey.create("path to a file to dump the list of all available tests")
val OMIT_FRAMEWORK_BINARY: CompilerConfigurationKey<Boolean> = CompilerConfigurationKey.create("do not generate binary in framework")
val COMPILE_FROM_BITCODE: CompilerConfigurationKey<String?> = CompilerConfigurationKey.create("path to bitcode file to compile")
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import org.jetbrains.kotlin.ir.IrBuiltIns
import org.jetbrains.kotlin.ir.builders.TranslationPluginContext
import org.jetbrains.kotlin.ir.linkage.IrDeserializer
import org.jetbrains.kotlin.ir.linkage.partial.partialLinkageConfig
import org.jetbrains.kotlin.ir.symbols.IrSymbol
import org.jetbrains.kotlin.ir.util.*
import org.jetbrains.kotlin.ir.visitors.acceptVoid
@@ -53,7 +54,7 @@ internal fun PsiToIrContext.psiToIr(
val expectActualLinker = config.configuration[CommonConfigurationKeys.EXPECT_ACTUAL_LINKER] ?: false
val messageLogger = config.configuration.irMessageLogger
val partialLinkageEnabled = config.configuration[KonanConfigKeys.PARTIAL_LINKAGE] ?: false
val partialLinkageEnabled = config.configuration.partialLinkageConfig.isEnabled
val translator = Psi2IrTranslator(
config.configuration.languageVersionSettings,
@@ -9,10 +9,8 @@ import org.jetbrains.kotlin.cli.common.arguments.K2NativeCompilerArguments
import org.jetbrains.kotlin.cli.common.config.addKotlinSourceRoot
import org.jetbrains.kotlin.cli.common.config.kotlinSourceRoots
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.*
import org.jetbrains.kotlin.config.CommonConfigurationKeys
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.PartialLinkageLogLevel
import org.jetbrains.kotlin.config.getModuleNameForSource
import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.ir.linkage.partial.setupPartialLinkageConfig
import org.jetbrains.kotlin.konan.file.File
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
import org.jetbrains.kotlin.konan.util.visibleName
@@ -272,9 +270,7 @@ fun CompilerConfiguration.setupFromArguments(arguments: K2NativeCompilerArgument
putIfNotNull(RUNTIME_LOGS, arguments.runtimeLogs)
putIfNotNull(BUNDLE_ID, parseBundleId(arguments, outputKind, this@setupFromArguments))
arguments.testDumpOutputPath?.let { put(TEST_DUMP_OUTPUT_PATH, it) }
put(PARTIAL_LINKAGE, arguments.partialLinkage)
arguments.partialLinkageLogLevel?.let { put(PARTIAL_LINKAGE_LOG_LEVEL, PartialLinkageLogLevel.resolveLogLevel(it)) }
setupPartialLinkageConfig(arguments.partialLinkage, arguments.partialLinkageLogLevel)
put(OMIT_FRAMEWORK_BINARY, arguments.omitFrameworkBinary)
putIfNotNull(COMPILE_FROM_BITCODE, parseCompileFromBitcode(arguments, this@setupFromArguments, outputKind))
putIfNotNull(SERIALIZED_DEPENDENCIES, parseSerializedDependencies(arguments, this@setupFromArguments))
@@ -287,8 +283,7 @@ private fun String.absoluteNormalizedFile() = java.io.File(this).absoluteFile.no
internal fun CompilerConfiguration.setupCommonOptionsForCaches(konanConfig: KonanConfig) = with(KonanConfigKeys) {
put(TARGET, konanConfig.target.toString())
put(DEBUG, konanConfig.debug)
put(PARTIAL_LINKAGE, konanConfig.partialLinkageEnabled)
put(PARTIAL_LINKAGE_LOG_LEVEL, konanConfig.partialLinkageLogLevel)
setupPartialLinkageConfig(konanConfig.partialLinkageConfig)
putIfNotNull(EXTERNAL_DEPENDENCIES, konanConfig.externalDependenciesFile?.absolutePath)
put(BinaryOptions.memoryModel, konanConfig.memoryModel)
put(PROPERTY_LAZY_INITIALIZATION, konanConfig.propertyLazyInitialization)