[K/N] Copy more flags to the first stage of one-shot compilation mode
This fixes obj-export lazy header generation in non-default modes, and makes nightly tests green.
This commit is contained in:
committed by
Space Team
parent
3547b404d5
commit
ba75ee4c03
+16
-9
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.cli.common.config.kotlinSourceRoots
|
|||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
|
import org.jetbrains.kotlin.config.CompilerConfigurationKey
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.konan.file.File
|
import org.jetbrains.kotlin.konan.file.File
|
||||||
import org.jetbrains.kotlin.konan.library.impl.createKonanLibrary
|
import org.jetbrains.kotlin.konan.library.impl.createKonanLibrary
|
||||||
@@ -153,18 +154,24 @@ class KonanDriver(
|
|||||||
it.deleteOnExit()
|
it.deleteOnExit()
|
||||||
}
|
}
|
||||||
compilationSpawner.spawn(emptyList()) {
|
compilationSpawner.spawn(emptyList()) {
|
||||||
|
fun <T> copy(key: CompilerConfigurationKey<T>) = putIfNotNull(key, configuration.get(key))
|
||||||
|
fun <T> copyNotNull(key: CompilerConfigurationKey<T>) = put(key, configuration.getNotNull(key))
|
||||||
// For the first stage, use "-p library" produce mode.
|
// For the first stage, use "-p library" produce mode.
|
||||||
put(KonanConfigKeys.PRODUCE, CompilerOutputKind.LIBRARY)
|
put(KonanConfigKeys.PRODUCE, CompilerOutputKind.LIBRARY)
|
||||||
configuration.get(KonanConfigKeys.TARGET)?.let { put(KonanConfigKeys.TARGET, it) }
|
copy(KonanConfigKeys.TARGET)
|
||||||
put(KonanConfigKeys.OUTPUT, intermediateKLib.absolutePath)
|
put(KonanConfigKeys.OUTPUT, intermediateKLib.absolutePath)
|
||||||
put(CLIConfigurationKeys.CONTENT_ROOTS, configuration.getNotNull(CLIConfigurationKeys.CONTENT_ROOTS))
|
copyNotNull(CLIConfigurationKeys.CONTENT_ROOTS)
|
||||||
put(KonanConfigKeys.LIBRARY_FILES, configuration.getNotNull(KonanConfigKeys.LIBRARY_FILES))
|
copyNotNull(KonanConfigKeys.LIBRARY_FILES)
|
||||||
put(KonanConfigKeys.REPOSITORIES, configuration.getNotNull(KonanConfigKeys.REPOSITORIES))
|
copyNotNull(KonanConfigKeys.REPOSITORIES)
|
||||||
configuration.get(KonanConfigKeys.FRIEND_MODULES)?.let { put(KonanConfigKeys.FRIEND_MODULES, it) }
|
copy(KonanConfigKeys.FRIEND_MODULES)
|
||||||
configuration.get(KonanConfigKeys.REFINES_MODULES)?.let { put(KonanConfigKeys.REFINES_MODULES, it) }
|
copy(KonanConfigKeys.REFINES_MODULES)
|
||||||
configuration.get(KonanConfigKeys.EMIT_LAZY_OBJC_HEADER_FILE)?.let { put(KonanConfigKeys.EMIT_LAZY_OBJC_HEADER_FILE, it)}
|
copy(KonanConfigKeys.EMIT_LAZY_OBJC_HEADER_FILE)
|
||||||
configuration.get(KonanConfigKeys.FULL_EXPORTED_NAME_PREFIX)?.let { put(KonanConfigKeys.FULL_EXPORTED_NAME_PREFIX, it)}
|
copy(KonanConfigKeys.FULL_EXPORTED_NAME_PREFIX)
|
||||||
configuration.get(KonanConfigKeys.EXPORT_KDOC)?.let { put(KonanConfigKeys.EXPORT_KDOC, it)}
|
copy(KonanConfigKeys.EXPORT_KDOC)
|
||||||
|
copy(BinaryOptions.unitSuspendFunctionObjCExport)
|
||||||
|
copy(BinaryOptions.objcExportDisableSwiftMemberNameMangling)
|
||||||
|
copy(BinaryOptions.objcExportIgnoreInterfaceMethodCollisions)
|
||||||
|
copy(KonanConfigKeys.OBJC_GENERICS)
|
||||||
}
|
}
|
||||||
|
|
||||||
// For the second stage, remove already compiled source files from the configuration.
|
// For the second stage, remove already compiled source files from the configuration.
|
||||||
|
|||||||
Reference in New Issue
Block a user