diff --git a/cmake/toolchains/arm-ios-common.cmake b/cmake/toolchains/arm-ios-common.cmake new file mode 100644 index 0000000..6cf48e0 --- /dev/null +++ b/cmake/toolchains/arm-ios-common.cmake @@ -0,0 +1,21 @@ +if (NOT DRACO_CMAKE_TOOLCHAINS_ARM_IOS_COMMON_CMAKE_) +set(DRACO_CMAKE_ARM_IOS_COMMON_CMAKE_ 1) + +set(CMAKE_SYSTEM_NAME "Darwin") +set(CMAKE_OSX_SYSROOT iphoneos) +set(CMAKE_C_COMPILER clang) +set(CMAKE_C_COMPILER_ARG1 "-arch ${CMAKE_SYSTEM_PROCESSOR}") +set(CMAKE_CXX_COMPILER clang++) +set(CMAKE_CXX_COMPILER_ARG1 "-arch ${CMAKE_SYSTEM_PROCESSOR}") + +# Assembler sources must be converted for ARM iOS targets. +set(AOM_ADS2GAS_REQUIRED 1) +set(AOM_ADS2GAS "${CMAKE_CURRENT_SOURCE_DIR}/build/make/ads2gas_apple.pl") +set(AOM_GAS_EXT "S") + +# No runtime cpu detect for arm*-ios targets. +set(CONFIG_RUNTIME_CPU_DETECT 0 CACHE NUMBER "") + +# TODO(tomfinegan): Handle bit code embedding. + +endif () # DRACO_CMAKE_TOOLCHAINS_ARM_IOS_COMMON_CMAKE_ diff --git a/cmake/toolchains/arm64-ios.cmake b/cmake/toolchains/arm64-ios.cmake new file mode 100644 index 0000000..0d4909e --- /dev/null +++ b/cmake/toolchains/arm64-ios.cmake @@ -0,0 +1,14 @@ +if (NOT DRACO_CMAKE_TOOLCHAINS_ARM64_IOS_CMAKE_) +set(DRACO_CMAKE_TOOLCHAINS_ARM64_IOS_CMAKE_ 1) + +if (XCODE) + # TODO(tomfinegan): Handle arm builds in Xcode. + message(FATAL_ERROR "This toolchain does not support Xcode.") +endif () + +set(CMAKE_SYSTEM_PROCESSOR "arm64") +set(CMAKE_OSX_ARCHITECTURES "arm64") + +include("${CMAKE_CURRENT_LIST_DIR}/arm-ios-common.cmake") + +endif () # DRACO_CMAKE_TOOLCHAINS_ARM64_IOS_CMAKE_ diff --git a/cmake/toolchains/armv7-ios.cmake b/cmake/toolchains/armv7-ios.cmake new file mode 100644 index 0000000..2394f37 --- /dev/null +++ b/cmake/toolchains/armv7-ios.cmake @@ -0,0 +1,20 @@ +if (NOT DRACO_CMAKE_TOOLCHAINS_ARMV7_IOS_CMAKE_) +set(DRACO_CMAKE_TOOLCHAINS_ARMV7_IOS_CMAKE_ 1) + +if (XCODE) + # TODO(tomfinegan): Handle arm builds in Xcode. + message(FATAL_ERROR "This toolchain does not support Xcode.") +endif () + +set(CMAKE_SYSTEM_PROCESSOR "armv7") +set(CMAKE_OSX_ARCHITECTURES "armv7") + +include("${CMAKE_CURRENT_LIST_DIR}/arm-ios-common.cmake") + +# No intrinsics flag required for armv7s-ios. +set(AOM_NEON_INTRIN_FLAG "") + +# No runtime cpu detect for armv7s-ios. +set(CONFIG_RUNTIME_CPU_DETECT 0 CACHE NUMBER "") + +endif () # DRACO_CMAKE_TOOLCHAINS_ARMV7_IOS_CMAKE_ diff --git a/cmake/toolchains/armv7s-ios.cmake b/cmake/toolchains/armv7s-ios.cmake new file mode 100644 index 0000000..b69f7fb --- /dev/null +++ b/cmake/toolchains/armv7s-ios.cmake @@ -0,0 +1,20 @@ +if (NOT DRACO_CMAKE_TOOLCHAINS_ARMV7S_IOS_CMAKE_) +set(DRACO_CMAKE_TOOLCHAINS_ARMV7S_IOS_CMAKE_ 1) + +if (XCODE) + # TODO(tomfinegan): Handle arm builds in Xcode. + message(FATAL_ERROR "This toolchain does not support Xcode.") +endif () + +set(CMAKE_SYSTEM_PROCESSOR "armv7s") +set(CMAKE_OSX_ARCHITECTURES "armv7s") + +include("${CMAKE_CURRENT_LIST_DIR}/arm-ios-common.cmake") + +# No intrinsics flag required for armv7s-ios. +set(AOM_NEON_INTRIN_FLAG "") + +# No runtime cpu detect for armv7s-ios. +set(CONFIG_RUNTIME_CPU_DETECT 0 CACHE NUMBER "") + +endif () # DRACO_CMAKE_TOOLCHAINS_ARMV7S_IOS_CMAKE_