Simplify setting apple os version in ClangArgs

Use `osVersionMinFlagClang` from konan.properties
instead of manual setup in ClangArgs.
This simplification will make it easier to add support
for future targets.
This commit is contained in:
Sergey Bogolepov
2021-03-23 18:53:58 +07:00
committed by TeamCityServer
parent 51d3d1f1a8
commit 273b43d227
2 changed files with 17 additions and 40 deletions
@@ -65,6 +65,14 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
}
add(listOf("-arch", arch))
add(listOf("-stdlib=libc++"))
val osVersionMin = when (target) {
// Here we workaround Clang 8 limitation: macOS major version should be 10.
// So we compile runtime with version 10.16 and then override version in BitcodeCompiler.
// TODO: Fix with LLVM Update.
KonanTarget.MACOS_ARM64 -> "10.16"
else -> configurables.osVersionMin
}
add(listOf("${configurables.osVersionMinFlagClang}=$osVersionMin"))
}
val hasCustomSysroot = configurables is ZephyrConfigurables
|| configurables is WasmConfigurables
@@ -86,12 +94,6 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
}
}.flatten()
private val osVersionMin: String
get() {
require(configurables is AppleConfigurables)
return configurables.osVersionMin
}
private val specificClangArgs: List<String> = when (target) {
KonanTarget.LINUX_X64,
KonanTarget.LINUX_MIPS32, KonanTarget.LINUX_MIPSEL32,
@@ -102,43 +104,17 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
"-mfpu=vfp", "-mfloat-abi=hard"
)
KonanTarget.MACOS_X64 -> listOf(
"-mmacosx-version-min=$osVersionMin"
)
// Here we workaround Clang 8 limitation: macOS major version should be 10.
// So we compile runtime with version 10.16 and then override version in BitcodeCompiler.
// TODO: Fix with LLVM Update.
KonanTarget.MACOS_ARM64 -> listOf(
"-mmacosx-version-min=10.16"
)
KonanTarget.MACOS_X64,
KonanTarget.MACOS_ARM64,
KonanTarget.IOS_ARM32,
KonanTarget.IOS_ARM64 -> listOf(
"-miphoneos-version-min=$osVersionMin"
)
KonanTarget.IOS_X64 -> listOf(
"-miphoneos-version-min=$osVersionMin"
)
KonanTarget.TVOS_ARM64 -> listOf(
"-mtvos-version-min=$osVersionMin"
)
KonanTarget.TVOS_X64 -> listOf(
"-mtvos-simulator-version-min=$osVersionMin"
)
KonanTarget.IOS_ARM64,
KonanTarget.IOS_X64,
KonanTarget.TVOS_ARM64,
KonanTarget.TVOS_X64,
KonanTarget.WATCHOS_ARM64,
KonanTarget.WATCHOS_ARM32 -> listOf(
"-mwatchos-version-min=$osVersionMin"
)
KonanTarget.WATCHOS_ARM32,
KonanTarget.WATCHOS_X86,
KonanTarget.WATCHOS_X64 -> listOf(
"-mwatchos-simulator-version-min=$osVersionMin"
)
KonanTarget.WATCHOS_X64 -> listOf()
KonanTarget.ANDROID_ARM32, KonanTarget.ANDROID_ARM64,
KonanTarget.ANDROID_X86, KonanTarget.ANDROID_X64 -> {
@@ -98,6 +98,7 @@ interface AppleConfigurables : Configurables, ClangFlags {
val arch get() = targetString("arch")!!
val osVersionMin get() = targetString("osVersionMin")!!
val osVersionMinFlagLd get() = targetString("osVersionMinFlagLd")!!
val osVersionMinFlagClang get() = targetString("osVersionMinFlagClang")!!
val stripFlags get() = targetList("stripFlags")
val additionalToolsDir get() = hostString("additionalToolsDir")
val absoluteAdditionalToolsDir get() = absolute(additionalToolsDir)