From d20fb916c781691dfd6ddbcdbcc7fcecfcf86f04 Mon Sep 17 00:00:00 2001 From: Tom Finegan Date: Fri, 9 Feb 2018 10:01:27 -0800 Subject: [PATCH 1/2] Add arm ios toolchains. --- cmake/toolchains/arm-ios-common.cmake | 21 +++++++++++++++++++++ cmake/toolchains/arm64-ios.cmake | 14 ++++++++++++++ cmake/toolchains/armv7-ios.cmake | 20 ++++++++++++++++++++ cmake/toolchains/armv7s-ios.cmake | 20 ++++++++++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 cmake/toolchains/arm-ios-common.cmake create mode 100644 cmake/toolchains/arm64-ios.cmake create mode 100644 cmake/toolchains/armv7-ios.cmake create mode 100644 cmake/toolchains/armv7s-ios.cmake 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_ From 606fbb01bb5c82511227fa0ffacf2181dfdbe987 Mon Sep 17 00:00:00 2001 From: Tom Finegan Date: Fri, 9 Feb 2018 10:05:08 -0800 Subject: [PATCH 2/2] Remove AOM cruft from arm ios toolchains. Draco does not need the extra flags, and does not care about AOM's internal configuration variables. --- cmake/toolchains/arm-ios-common.cmake | 8 -------- cmake/toolchains/armv7-ios.cmake | 6 ------ cmake/toolchains/armv7s-ios.cmake | 6 ------ 3 files changed, 20 deletions(-) diff --git a/cmake/toolchains/arm-ios-common.cmake b/cmake/toolchains/arm-ios-common.cmake index 6cf48e0..48f5ce5 100644 --- a/cmake/toolchains/arm-ios-common.cmake +++ b/cmake/toolchains/arm-ios-common.cmake @@ -8,14 +8,6 @@ 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/armv7-ios.cmake b/cmake/toolchains/armv7-ios.cmake index 2394f37..61d6787 100644 --- a/cmake/toolchains/armv7-ios.cmake +++ b/cmake/toolchains/armv7-ios.cmake @@ -11,10 +11,4 @@ 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 index b69f7fb..4509793 100644 --- a/cmake/toolchains/armv7s-ios.cmake +++ b/cmake/toolchains/armv7s-ios.cmake @@ -11,10 +11,4 @@ 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_