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:
committed by
TeamCityServer
parent
51d3d1f1a8
commit
273b43d227
+16
-40
@@ -65,6 +65,14 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
|
|||||||
}
|
}
|
||||||
add(listOf("-arch", arch))
|
add(listOf("-arch", arch))
|
||||||
add(listOf("-stdlib=libc++"))
|
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
|
val hasCustomSysroot = configurables is ZephyrConfigurables
|
||||||
|| configurables is WasmConfigurables
|
|| configurables is WasmConfigurables
|
||||||
@@ -86,12 +94,6 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
|
|||||||
}
|
}
|
||||||
}.flatten()
|
}.flatten()
|
||||||
|
|
||||||
private val osVersionMin: String
|
|
||||||
get() {
|
|
||||||
require(configurables is AppleConfigurables)
|
|
||||||
return configurables.osVersionMin
|
|
||||||
}
|
|
||||||
|
|
||||||
private val specificClangArgs: List<String> = when (target) {
|
private val specificClangArgs: List<String> = when (target) {
|
||||||
KonanTarget.LINUX_X64,
|
KonanTarget.LINUX_X64,
|
||||||
KonanTarget.LINUX_MIPS32, KonanTarget.LINUX_MIPSEL32,
|
KonanTarget.LINUX_MIPS32, KonanTarget.LINUX_MIPSEL32,
|
||||||
@@ -102,43 +104,17 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
|
|||||||
"-mfpu=vfp", "-mfloat-abi=hard"
|
"-mfpu=vfp", "-mfloat-abi=hard"
|
||||||
)
|
)
|
||||||
|
|
||||||
KonanTarget.MACOS_X64 -> listOf(
|
KonanTarget.MACOS_X64,
|
||||||
"-mmacosx-version-min=$osVersionMin"
|
KonanTarget.MACOS_ARM64,
|
||||||
)
|
|
||||||
|
|
||||||
// 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.IOS_ARM32,
|
KonanTarget.IOS_ARM32,
|
||||||
KonanTarget.IOS_ARM64 -> listOf(
|
KonanTarget.IOS_ARM64,
|
||||||
"-miphoneos-version-min=$osVersionMin"
|
KonanTarget.IOS_X64,
|
||||||
)
|
KonanTarget.TVOS_ARM64,
|
||||||
|
KonanTarget.TVOS_X64,
|
||||||
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.WATCHOS_ARM64,
|
KonanTarget.WATCHOS_ARM64,
|
||||||
KonanTarget.WATCHOS_ARM32 -> listOf(
|
KonanTarget.WATCHOS_ARM32,
|
||||||
"-mwatchos-version-min=$osVersionMin"
|
|
||||||
)
|
|
||||||
|
|
||||||
KonanTarget.WATCHOS_X86,
|
KonanTarget.WATCHOS_X86,
|
||||||
KonanTarget.WATCHOS_X64 -> listOf(
|
KonanTarget.WATCHOS_X64 -> listOf()
|
||||||
"-mwatchos-simulator-version-min=$osVersionMin"
|
|
||||||
)
|
|
||||||
|
|
||||||
KonanTarget.ANDROID_ARM32, KonanTarget.ANDROID_ARM64,
|
KonanTarget.ANDROID_ARM32, KonanTarget.ANDROID_ARM64,
|
||||||
KonanTarget.ANDROID_X86, KonanTarget.ANDROID_X64 -> {
|
KonanTarget.ANDROID_X86, KonanTarget.ANDROID_X64 -> {
|
||||||
|
|||||||
+1
@@ -98,6 +98,7 @@ interface AppleConfigurables : Configurables, ClangFlags {
|
|||||||
val arch get() = targetString("arch")!!
|
val arch get() = targetString("arch")!!
|
||||||
val osVersionMin get() = targetString("osVersionMin")!!
|
val osVersionMin get() = targetString("osVersionMin")!!
|
||||||
val osVersionMinFlagLd get() = targetString("osVersionMinFlagLd")!!
|
val osVersionMinFlagLd get() = targetString("osVersionMinFlagLd")!!
|
||||||
|
val osVersionMinFlagClang get() = targetString("osVersionMinFlagClang")!!
|
||||||
val stripFlags get() = targetList("stripFlags")
|
val stripFlags get() = targetList("stripFlags")
|
||||||
val additionalToolsDir get() = hostString("additionalToolsDir")
|
val additionalToolsDir get() = hostString("additionalToolsDir")
|
||||||
val absoluteAdditionalToolsDir get() = absolute(additionalToolsDir)
|
val absoluteAdditionalToolsDir get() = absolute(additionalToolsDir)
|
||||||
|
|||||||
Reference in New Issue
Block a user