32-bit iOS support (#1708)
This commit is contained in:
@@ -32,7 +32,7 @@ class AppleConfigurablesImpl(
|
||||
override val absoluteTargetSysRoot: String get() = when (xcodePartsProvider) {
|
||||
is XcodePartsProvider.Local -> when (target) {
|
||||
KonanTarget.MACOS_X64 -> xcodePartsProvider.xcode.macosxSdk
|
||||
KonanTarget.IOS_ARM64 -> xcodePartsProvider.xcode.iphoneosSdk
|
||||
KonanTarget.IOS_ARM32, KonanTarget.IOS_ARM64 -> xcodePartsProvider.xcode.iphoneosSdk
|
||||
KonanTarget.IOS_X64 -> xcodePartsProvider.xcode.iphonesimulatorSdk
|
||||
else -> error(target)
|
||||
}
|
||||
|
||||
@@ -55,6 +55,9 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
|
||||
KonanTarget.MACOS_X64 ->
|
||||
listOf("--sysroot=$absoluteTargetSysRoot", "-mmacosx-version-min=10.11")
|
||||
|
||||
KonanTarget.IOS_ARM32 ->
|
||||
listOf("-stdlib=libc++", "-arch", "armv7", "-isysroot", absoluteTargetSysRoot, "-miphoneos-version-min=9.0.0")
|
||||
|
||||
KonanTarget.IOS_ARM64 ->
|
||||
listOf("-stdlib=libc++", "-arch", "arm64", "-isysroot", absoluteTargetSysRoot, "-miphoneos-version-min=8.0.0")
|
||||
|
||||
@@ -124,7 +127,7 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
|
||||
KonanTarget.MACOS_X64 ->
|
||||
listOf("-DKONAN_OSX=1", "-DKONAN_OBJC_INTEROP=1")
|
||||
|
||||
KonanTarget.IOS_ARM64 ->
|
||||
KonanTarget.IOS_ARM32, KonanTarget.IOS_ARM64 ->
|
||||
listOf("-DKONAN_OBJC_INTEROP=1")
|
||||
|
||||
KonanTarget.IOS_X64 ->
|
||||
|
||||
@@ -42,7 +42,7 @@ fun loadConfigurables(target: KonanTarget, properties: Properties, baseDir: Stri
|
||||
LinuxConfigurablesImpl(target, properties, baseDir)
|
||||
KonanTarget.LINUX_MIPS32, KonanTarget.LINUX_MIPSEL32 ->
|
||||
LinuxMIPSConfigurablesImpl(target, properties, baseDir)
|
||||
KonanTarget.MACOS_X64, KonanTarget.IOS_ARM64, KonanTarget.IOS_X64 ->
|
||||
KonanTarget.MACOS_X64, KonanTarget.IOS_ARM32, KonanTarget.IOS_ARM64, KonanTarget.IOS_X64 ->
|
||||
AppleConfigurablesImpl(target, properties, baseDir)
|
||||
KonanTarget.ANDROID_ARM32, KonanTarget.ANDROID_ARM64 ->
|
||||
AndroidConfigurablesImpl(target, properties, baseDir)
|
||||
|
||||
@@ -43,6 +43,7 @@ enum class Architecture(val bitness: Int) {
|
||||
sealed class KonanTarget(override val name: String, val family: Family, val architecture: Architecture) : Named {
|
||||
object ANDROID_ARM32 : KonanTarget( "android_arm32", Family.ANDROID, Architecture.ARM32)
|
||||
object ANDROID_ARM64 : KonanTarget( "android_arm64", Family.ANDROID, Architecture.ARM64)
|
||||
object IOS_ARM32 : KonanTarget( "ios_arm32", Family.IOS, Architecture.ARM32)
|
||||
object IOS_ARM64 : KonanTarget( "ios_arm64", Family.IOS, Architecture.ARM64)
|
||||
object IOS_X64 : KonanTarget( "ios_x64", Family.IOS, Architecture.X64)
|
||||
object LINUX_X64 : KonanTarget( "linux_x64", Family.LINUX, Architecture.X64)
|
||||
@@ -127,7 +128,13 @@ open class HostManager(protected val distribution: Distribution = Distribution()
|
||||
fun targetManager(userRequest: String? = null): TargetManager = TargetManagerImpl(userRequest, this)
|
||||
|
||||
// TODO: need a better way to enumerated predefined targets.
|
||||
private val predefinedTargets = listOf(ANDROID_ARM32, ANDROID_ARM64, IOS_ARM64, IOS_X64, LINUX_X64, MINGW_X64, MACOS_X64, LINUX_ARM32_HFP, LINUX_MIPS32, LINUX_MIPSEL32, WASM32)
|
||||
private val predefinedTargets = listOf(
|
||||
ANDROID_ARM32, ANDROID_ARM64,
|
||||
IOS_ARM32, IOS_ARM64, IOS_X64,
|
||||
LINUX_X64, LINUX_ARM32_HFP, LINUX_MIPS32, LINUX_MIPSEL32,
|
||||
MINGW_X64,
|
||||
MACOS_X64,
|
||||
WASM32)
|
||||
|
||||
private val zephyrSubtargets = distribution.availableSubTarget("zephyr").map { ZEPHYR(it) }
|
||||
|
||||
@@ -177,6 +184,7 @@ open class HostManager(protected val distribution: Distribution = Distribution()
|
||||
) + zephyrSubtargets
|
||||
KonanTarget.MACOS_X64 -> listOf(
|
||||
KonanTarget.MACOS_X64,
|
||||
KonanTarget.IOS_ARM32,
|
||||
KonanTarget.IOS_ARM64,
|
||||
KonanTarget.IOS_X64,
|
||||
KonanTarget.ANDROID_ARM32,
|
||||
@@ -248,6 +256,7 @@ open class HostManager(protected val distribution: Distribution = Distribution()
|
||||
"macos" to "macos_x64",
|
||||
"imac" to "macos_x64",
|
||||
"raspberrypi" to "linux_arm32_hfp",
|
||||
"iphone32" to "ios_arm32",
|
||||
"iphone" to "ios_arm64",
|
||||
"ipad" to "ios_arm64",
|
||||
"ios" to "ios_arm64",
|
||||
|
||||
@@ -388,7 +388,7 @@ fun linker(configurables: Configurables): LinkerFlags =
|
||||
LinuxBasedLinker(configurables as LinuxConfigurables)
|
||||
KonanTarget.LINUX_MIPS32, KonanTarget.LINUX_MIPSEL32 ->
|
||||
LinuxBasedLinker(configurables as LinuxMIPSConfigurables)
|
||||
KonanTarget.MACOS_X64, KonanTarget.IOS_ARM64, KonanTarget.IOS_X64 ->
|
||||
KonanTarget.MACOS_X64, KonanTarget.IOS_ARM32, KonanTarget.IOS_ARM64, KonanTarget.IOS_X64 ->
|
||||
MacOSBasedLinker(configurables as AppleConfigurables)
|
||||
KonanTarget.ANDROID_ARM32, KonanTarget.ANDROID_ARM64 ->
|
||||
AndroidLinker(configurables as AndroidConfigurables)
|
||||
|
||||
Reference in New Issue
Block a user