[PL] Commonize Native & JS compiler configuration keys
This commit is contained in:
committed by
Space Team
parent
831611d577
commit
a450866db3
@@ -51,6 +51,7 @@ import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.JsCodeGenerator
|
||||
import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.TranslationMode
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImplForJsIC
|
||||
import org.jetbrains.kotlin.ir.linkage.partial.setupPartialLinkageConfig
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult
|
||||
import org.jetbrains.kotlin.js.config.*
|
||||
@@ -168,15 +169,10 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
|
||||
|
||||
configuration.put(JSConfigurationKeys.LIBRARIES, libraries)
|
||||
configuration.put(JSConfigurationKeys.TRANSITIVE_LIBRARIES, libraries)
|
||||
|
||||
configuration.put(JSConfigurationKeys.PARTIAL_LINKAGE, arguments.partialLinkage)
|
||||
arguments.partialLinkageLogLevel?.let {
|
||||
configuration.put(JSConfigurationKeys.PARTIAL_LINKAGE_LOG_LEVEL, PartialLinkageLogLevel.resolveLogLevel(it))
|
||||
}
|
||||
|
||||
configuration.put(JSConfigurationKeys.WASM_ENABLE_ARRAY_RANGE_CHECKS, arguments.wasmEnableArrayRangeChecks)
|
||||
configuration.put(JSConfigurationKeys.WASM_ENABLE_ASSERTS, arguments.wasmEnableAsserts)
|
||||
configuration.put(JSConfigurationKeys.WASM_GENERATE_WAT, arguments.wasmGenerateWat)
|
||||
configuration.setupPartialLinkageConfig(arguments.partialLinkage, arguments.partialLinkageLogLevel)
|
||||
|
||||
val commonSourcesArray = arguments.commonSources
|
||||
val commonSources = commonSourcesArray?.toSet() ?: emptySet()
|
||||
|
||||
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.JsManglerDesc
|
||||
import org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.JsManglerIr
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
||||
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
|
||||
import org.jetbrains.kotlin.ir.linkage.partial.partialLinkageConfig
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
import org.jetbrains.kotlin.ir.util.IrMessageLogger
|
||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||
@@ -59,11 +60,10 @@ fun generateIrForKlibSerialization(
|
||||
): Pair<IrModuleFragment, IrPluginContext> {
|
||||
val errorPolicy = configuration.get(JSConfigurationKeys.ERROR_TOLERANCE_POLICY) ?: ErrorTolerancePolicy.DEFAULT
|
||||
val messageLogger = configuration.get(IrMessageLogger.IR_MESSAGE_LOGGER) ?: IrMessageLogger.None
|
||||
val allowUnboundSymbols = configuration[JSConfigurationKeys.PARTIAL_LINKAGE] ?: false
|
||||
val symbolTable = SymbolTable(IdSignatureDescriptor(JsManglerDesc), irFactory)
|
||||
val psi2Ir = Psi2IrTranslator(
|
||||
configuration.languageVersionSettings,
|
||||
Psi2IrConfiguration(errorPolicy.allowErrors, allowUnboundSymbols),
|
||||
Psi2IrConfiguration(errorPolicy.allowErrors, configuration.partialLinkageConfig.isEnabled),
|
||||
messageLogger::checkNoUnboundSymbols
|
||||
)
|
||||
val psi2IrContext = psi2Ir.createGeneratorContext(analysisResult.moduleDescriptor, analysisResult.bindingContext, symbolTable)
|
||||
@@ -83,7 +83,7 @@ fun generateIrForKlibSerialization(
|
||||
messageLogger,
|
||||
psi2IrContext.irBuiltIns,
|
||||
psi2IrContext.symbolTable,
|
||||
partialLinkageEnabled = configuration[JSConfigurationKeys.PARTIAL_LINKAGE] ?: false,
|
||||
partialLinkageEnabled = configuration.partialLinkageConfig.isEnabled,
|
||||
feContext,
|
||||
ICData(icData.map { it.irData }, errorPolicy.allowErrors),
|
||||
stubGenerator = stubGenerator
|
||||
|
||||
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.IrCall
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||
import org.jetbrains.kotlin.ir.linkage.partial.partialLinkageConfig
|
||||
import org.jetbrains.kotlin.ir.symbols.*
|
||||
import org.jetbrains.kotlin.ir.symbols.impl.DescriptorlessExternalPackageFragmentSymbol
|
||||
import org.jetbrains.kotlin.ir.types.*
|
||||
@@ -409,7 +410,7 @@ class JsIrBackendContext(
|
||||
}
|
||||
|
||||
override val partialLinkageSupport = createPartialLinkageSupportForLowerings(
|
||||
isEnabled = configuration[JSConfigurationKeys.PARTIAL_LINKAGE] ?: false,
|
||||
isEnabled = configuration.partialLinkageConfig.isEnabled,
|
||||
irBuiltIns,
|
||||
configuration.irMessageLogger
|
||||
)
|
||||
|
||||
+2
-2
@@ -23,10 +23,10 @@ import org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.JsManglerDesc
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
||||
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
|
||||
import org.jetbrains.kotlin.ir.descriptors.IrDescriptorBasedFunctionFactory
|
||||
import org.jetbrains.kotlin.ir.linkage.partial.partialLinkageConfig
|
||||
import org.jetbrains.kotlin.ir.util.ExternalDependenciesGenerator
|
||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||
import org.jetbrains.kotlin.ir.util.irMessageLogger
|
||||
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
||||
import org.jetbrains.kotlin.library.KotlinLibrary
|
||||
import org.jetbrains.kotlin.library.uniqueName
|
||||
import org.jetbrains.kotlin.library.unresolvedDependencies
|
||||
@@ -108,7 +108,7 @@ internal class JsIrLinkerLoader(
|
||||
val moduleDescriptor = loadedModules.keys.last()
|
||||
val typeTranslator = TypeTranslatorImpl(symbolTable, compilerConfiguration.languageVersionSettings, moduleDescriptor)
|
||||
val irBuiltIns = IrBuiltInsOverDescriptors(moduleDescriptor.builtIns, typeTranslator, symbolTable)
|
||||
val partialLinkageEnabled = compilerConfiguration[JSConfigurationKeys.PARTIAL_LINKAGE] ?: false
|
||||
val partialLinkageEnabled = compilerConfiguration.partialLinkageConfig.isEnabled
|
||||
val linker = JsIrLinker(
|
||||
currentModule = null,
|
||||
messageLogger = compilerConfiguration.irMessageLogger,
|
||||
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.ir.linkage.partial
|
||||
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.CompilerConfigurationKey
|
||||
|
||||
data class PartialLinkageConfig(val isEnabled: Boolean, val logLevel: PartialLinkageLogLevel) {
|
||||
companion object {
|
||||
val DEFAULT = PartialLinkageConfig(false, PartialLinkageLogLevel.ERROR)
|
||||
|
||||
val KEY = CompilerConfigurationKey.create<PartialLinkageConfig>("partial linkage configuration")
|
||||
}
|
||||
}
|
||||
|
||||
enum class PartialLinkageLogLevel {
|
||||
INFO, WARNING, ERROR;
|
||||
|
||||
companion object {
|
||||
val DEFAULT = WARNING
|
||||
|
||||
fun resolveLogLevel(key: String): PartialLinkageLogLevel =
|
||||
values().firstOrNull { entry -> entry.name.equals(key, ignoreCase = true) }
|
||||
?: error("Unknown partial linkage compile-time log level '$key'")
|
||||
}
|
||||
}
|
||||
|
||||
val CompilerConfiguration.partialLinkageConfig: PartialLinkageConfig
|
||||
get() = this[PartialLinkageConfig.KEY] ?: PartialLinkageConfig.DEFAULT
|
||||
|
||||
fun CompilerConfiguration.setupPartialLinkageConfig(isEnabled: Boolean, logLevel: String?) {
|
||||
setupPartialLinkageConfig(
|
||||
PartialLinkageConfig(isEnabled, logLevel?.let(PartialLinkageLogLevel::resolveLogLevel) ?: PartialLinkageLogLevel.DEFAULT)
|
||||
)
|
||||
}
|
||||
|
||||
fun CompilerConfiguration.setupPartialLinkageConfig(config: PartialLinkageConfig) {
|
||||
this.put(PartialLinkageConfig.KEY, config)
|
||||
}
|
||||
@@ -40,6 +40,7 @@ import org.jetbrains.kotlin.ir.declarations.IrFactory
|
||||
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
|
||||
import org.jetbrains.kotlin.ir.descriptors.IrDescriptorBasedFunctionFactory
|
||||
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
|
||||
@@ -198,7 +199,7 @@ fun loadIr(
|
||||
val allDependencies = depsDescriptors.allDependencies
|
||||
val errorPolicy = configuration.get(JSConfigurationKeys.ERROR_TOLERANCE_POLICY) ?: ErrorTolerancePolicy.DEFAULT
|
||||
val messageLogger = configuration.irMessageLogger
|
||||
val partialLinkageEnabled = configuration[JSConfigurationKeys.PARTIAL_LINKAGE] ?: false
|
||||
val partialLinkageEnabled = configuration.partialLinkageConfig.isEnabled
|
||||
|
||||
val signaturer = IdSignatureDescriptor(JsManglerDesc)
|
||||
val symbolTable = SymbolTable(signaturer, irFactory)
|
||||
@@ -261,7 +262,7 @@ fun getIrModuleInfoForKlib(
|
||||
val typeTranslator = TypeTranslatorImpl(symbolTable, configuration.languageVersionSettings, moduleDescriptor)
|
||||
val irBuiltIns = IrBuiltInsOverDescriptors(moduleDescriptor.builtIns, typeTranslator, symbolTable)
|
||||
|
||||
val partialLinkageEnabled = configuration[JSConfigurationKeys.PARTIAL_LINKAGE] ?: false
|
||||
val partialLinkageEnabled = configuration.partialLinkageConfig.isEnabled
|
||||
|
||||
val irLinker = JsIrLinker(
|
||||
currentModule = null,
|
||||
@@ -321,7 +322,7 @@ fun getIrModuleInfoForSourceFiles(
|
||||
JsIrLinker.JsFePluginContext(moduleDescriptor, symbolTable, typeTranslator, irBuiltIns)
|
||||
}
|
||||
|
||||
val partialLinkageEnabled = configuration[JSConfigurationKeys.PARTIAL_LINKAGE] ?: false
|
||||
val partialLinkageEnabled = configuration.partialLinkageConfig.isEnabled
|
||||
|
||||
val irLinker = JsIrLinker(
|
||||
currentModule = psi2IrContext.moduleDescriptor,
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.config
|
||||
|
||||
enum class PartialLinkageLogLevel {
|
||||
INFO, WARNING, ERROR;
|
||||
|
||||
companion object {
|
||||
val DEFAULT = WARNING
|
||||
|
||||
fun resolveLogLevel(key: String): PartialLinkageLogLevel = when (key.uppercase()) {
|
||||
"INFO" -> INFO
|
||||
"WARNING" -> WARNING
|
||||
"ERROR" -> ERROR
|
||||
else -> error("Unknown partial linkage compile-time log level '$key'")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.js.config;
|
||||
|
||||
import org.jetbrains.kotlin.konan.file.ZipFileSystemAccessor;
|
||||
import org.jetbrains.kotlin.config.CompilerConfigurationKey;
|
||||
import org.jetbrains.kotlin.config.PartialLinkageLogLevel;
|
||||
import org.jetbrains.kotlin.incremental.js.IncrementalNextRoundChecker;
|
||||
import org.jetbrains.kotlin.incremental.js.IncrementalDataProvider;
|
||||
import org.jetbrains.kotlin.incremental.js.IncrementalResultsConsumer;
|
||||
@@ -101,12 +100,6 @@ public class JSConfigurationKeys {
|
||||
public static final CompilerConfigurationKey<ErrorTolerancePolicy> ERROR_TOLERANCE_POLICY =
|
||||
CompilerConfigurationKey.create("set up policy to ignore compilation errors");
|
||||
|
||||
public static final CompilerConfigurationKey<Boolean> PARTIAL_LINKAGE =
|
||||
CompilerConfigurationKey.create("enables partial linkage mode");
|
||||
|
||||
public static final CompilerConfigurationKey<PartialLinkageLogLevel> PARTIAL_LINKAGE_LOG_LEVEL =
|
||||
CompilerConfigurationKey.create("partial linkage compile-time log level");
|
||||
|
||||
public static final CompilerConfigurationKey<Boolean> PROPERTY_LAZY_INITIALIZATION =
|
||||
CompilerConfigurationKey.create("perform lazy initialization for properties");
|
||||
|
||||
|
||||
+4
-1
@@ -33,6 +33,9 @@ import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.IrModuleToJsTransf
|
||||
import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.TranslationMode
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImplForJsIC
|
||||
import org.jetbrains.kotlin.ir.linkage.partial.PartialLinkageConfig
|
||||
import org.jetbrains.kotlin.ir.linkage.partial.PartialLinkageLogLevel
|
||||
import org.jetbrains.kotlin.ir.linkage.partial.setupPartialLinkageConfig
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
||||
import org.jetbrains.kotlin.js.testOld.V8IrJsTestChecker
|
||||
@@ -86,7 +89,6 @@ abstract class AbstractJsPartialLinkageTestCase(val compilerType: CompilerType)
|
||||
private fun createConfig(moduleName: String): CompilerConfiguration {
|
||||
val config = environment.configuration.copy()
|
||||
config.put(CommonConfigurationKeys.MODULE_NAME, moduleName)
|
||||
config.put(JSConfigurationKeys.PARTIAL_LINKAGE, true)
|
||||
config.put(JSConfigurationKeys.MODULE_KIND, ModuleKind.PLAIN)
|
||||
config.put(JSConfigurationKeys.PROPERTY_LAZY_INITIALIZATION, true)
|
||||
|
||||
@@ -233,6 +235,7 @@ abstract class AbstractJsPartialLinkageTestCase(val compilerType: CompilerType)
|
||||
|
||||
private fun buildBinaryAndRun(mainModuleKlibFile: File, allDependencies: Dependencies) {
|
||||
val configuration = createConfig(MAIN_MODULE_NAME)
|
||||
configuration.setupPartialLinkageConfig(PartialLinkageConfig(isEnabled = true, logLevel = PartialLinkageLogLevel.WARNING))
|
||||
|
||||
val compilationOutputs = when (compilerType) {
|
||||
CompilerType.K1_NO_IC, CompilerType.K2_NO_IC -> buildBinaryNoIC(configuration, mainModuleKlibFile, allDependencies)
|
||||
|
||||
+1
-1
@@ -115,7 +115,7 @@ internal class Context(
|
||||
override fun dispose() {}
|
||||
|
||||
override val partialLinkageSupport = createPartialLinkageSupportForLowerings(
|
||||
config.partialLinkageEnabled,
|
||||
config.partialLinkageConfig.isEnabled,
|
||||
irBuiltIns,
|
||||
configuration.irMessageLogger
|
||||
)
|
||||
|
||||
+4
-7
@@ -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")
|
||||
|
||||
-3
@@ -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")
|
||||
|
||||
+2
-1
@@ -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,
|
||||
|
||||
+4
-9
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user