[K/N] Prohibit -Xcompile-from-bitcode when producing library
This commit is contained in:
committed by
Space Team
parent
0e721c8fc2
commit
bba7e9e395
+14
-1
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.config.CompilerConfiguration
|
|||||||
import org.jetbrains.kotlin.config.getModuleNameForSource
|
import org.jetbrains.kotlin.config.getModuleNameForSource
|
||||||
import org.jetbrains.kotlin.konan.file.File
|
import org.jetbrains.kotlin.konan.file.File
|
||||||
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
||||||
|
import org.jetbrains.kotlin.konan.util.visibleName
|
||||||
|
|
||||||
fun CompilerConfiguration.setupFromArguments(arguments: K2NativeCompilerArguments) = with(KonanConfigKeys) {
|
fun CompilerConfiguration.setupFromArguments(arguments: K2NativeCompilerArguments) = with(KonanConfigKeys) {
|
||||||
val commonSources = arguments.commonSources?.toSet().orEmpty().map { it.absoluteNormalizedFile() }
|
val commonSources = arguments.commonSources?.toSet().orEmpty().map { it.absoluteNormalizedFile() }
|
||||||
@@ -262,7 +263,7 @@ fun CompilerConfiguration.setupFromArguments(arguments: K2NativeCompilerArgument
|
|||||||
arguments.testDumpOutputPath?.let { put(TEST_DUMP_OUTPUT_PATH, it) }
|
arguments.testDumpOutputPath?.let { put(TEST_DUMP_OUTPUT_PATH, it) }
|
||||||
put(PARTIAL_LINKAGE, arguments.partialLinkage)
|
put(PARTIAL_LINKAGE, arguments.partialLinkage)
|
||||||
put(OMIT_FRAMEWORK_BINARY, arguments.omitFrameworkBinary)
|
put(OMIT_FRAMEWORK_BINARY, arguments.omitFrameworkBinary)
|
||||||
putIfNotNull(COMPILE_FROM_BITCODE, arguments.compileFromBitcode)
|
putIfNotNull(COMPILE_FROM_BITCODE, parseCompileFromBitcode(arguments, this@setupFromArguments, outputKind))
|
||||||
putIfNotNull(SERIALIZED_DEPENDENCIES, parseSerializedDependencies(arguments, this@setupFromArguments))
|
putIfNotNull(SERIALIZED_DEPENDENCIES, parseSerializedDependencies(arguments, this@setupFromArguments))
|
||||||
putIfNotNull(SAVE_DEPENDENCIES_PATH, arguments.saveDependenciesPath)
|
putIfNotNull(SAVE_DEPENDENCIES_PATH, arguments.saveDependenciesPath)
|
||||||
putIfNotNull(SAVE_LLVM_IR_DIRECTORY, arguments.saveLlvmIrDirectory)
|
putIfNotNull(SAVE_LLVM_IR_DIRECTORY, arguments.saveLlvmIrDirectory)
|
||||||
@@ -517,4 +518,16 @@ private fun parseSerializedDependencies(
|
|||||||
"Providing serialized dependencies only works in conjunction with a bitcode file to compile.")
|
"Providing serialized dependencies only works in conjunction with a bitcode file to compile.")
|
||||||
}
|
}
|
||||||
return arguments.serializedDependencies
|
return arguments.serializedDependencies
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun parseCompileFromBitcode(
|
||||||
|
arguments: K2NativeCompilerArguments,
|
||||||
|
configuration: CompilerConfiguration,
|
||||||
|
outputKind: CompilerOutputKind,
|
||||||
|
): String? {
|
||||||
|
if (!arguments.compileFromBitcode.isNullOrEmpty() && !outputKind.involvesBitcodeGeneration) {
|
||||||
|
configuration.report(ERROR,
|
||||||
|
"Compilation from bitcode is not available when producing ${outputKind.visibleName}")
|
||||||
|
}
|
||||||
|
return arguments.compileFromBitcode
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user