From cfaf1bebfe09d38ed93bc7e9b5c6c7319aae11a4 Mon Sep 17 00:00:00 2001 From: PsychoTodd Date: Fri, 1 May 2020 20:44:58 -0700 Subject: [PATCH] add toolchain files for ios simulator. --- BUILDING.md | 26 ++++++++++++++++++++++++++ cmake/toolchains/arm-ios-common.cmake | 6 +++++- cmake/toolchains/i386-ios.cmake | 15 +++++++++++++++ cmake/toolchains/x86_64-ios.cmake | 15 +++++++++++++++ 4 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 cmake/toolchains/i386-ios.cmake create mode 100644 cmake/toolchains/x86_64-ios.cmake diff --git a/BUILDING.md b/BUILDING.md index 26b3f40..2eb0da2 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -197,6 +197,32 @@ $ cmake ../ -DCMAKE_TOOLCHAIN_FILE=/path/to/Emscripten.cmake $ make ~~~~~ +iOS Builds +--------------------- +To build Draco for different iOS architectures and simulators for iphone and the simulators + +~~~~~ bash + +#arm64 +$ cmake ../ -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/arm64-ios.cmake +$ make + +#x86_64 +$ cmake ../ -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/x86_64-ios.cmake +$ make + +#armv7 +$ cmake ../ -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/armv7-ios.cmake +$ make + +#i386 +$ cmake ../ -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/i386-ios.cmake +$ make +~~~~~~ + +After building the tools they can be merged into fat lib and used in Iphone applications. + + Native Android Builds --------------------- diff --git a/cmake/toolchains/arm-ios-common.cmake b/cmake/toolchains/arm-ios-common.cmake index b43f04b..65326d1 100644 --- a/cmake/toolchains/arm-ios-common.cmake +++ b/cmake/toolchains/arm-ios-common.cmake @@ -4,7 +4,11 @@ endif() set(DRACO_CMAKE_ARM_IOS_COMMON_CMAKE_ 1) set(CMAKE_SYSTEM_NAME "Darwin") -set(CMAKE_OSX_SYSROOT iphoneos) +if(CMAKE_OSX_SDK) + set(CMAKE_OSX_SYSROOT ${CMAKE_OSX_SDK}) +else() + set(CMAKE_OSX_SYSROOT iphoneos) +endif() set(CMAKE_C_COMPILER clang) set(CMAKE_C_COMPILER_ARG1 "-arch ${CMAKE_SYSTEM_PROCESSOR}") set(CMAKE_CXX_COMPILER clang++) diff --git a/cmake/toolchains/i386-ios.cmake b/cmake/toolchains/i386-ios.cmake new file mode 100644 index 0000000..e9a1055 --- /dev/null +++ b/cmake/toolchains/i386-ios.cmake @@ -0,0 +1,15 @@ +if(DRACO_CMAKE_TOOLCHAINS_i386_IOS_CMAKE_) + return() +endif() +set(DRACO_CMAKE_TOOLCHAINS_i386_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 "i386") +set(CMAKE_OSX_ARCHITECTURES "i386") +set(CMAKE_OSX_SDK "iphonesimulator") + +include("${CMAKE_CURRENT_LIST_DIR}/arm-ios-common.cmake") diff --git a/cmake/toolchains/x86_64-ios.cmake b/cmake/toolchains/x86_64-ios.cmake new file mode 100644 index 0000000..4c50a72 --- /dev/null +++ b/cmake/toolchains/x86_64-ios.cmake @@ -0,0 +1,15 @@ +if(DRACO_CMAKE_TOOLCHAINS_X86_64_IOS_CMAKE_) + return() +endif() +set(DRACO_CMAKE_TOOLCHAINS_X86_64_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 "x86_64") +set(CMAKE_OSX_ARCHITECTURES "x86_64") +set(CMAKE_OSX_SDK "iphonesimulator") + +include("${CMAKE_CURRENT_LIST_DIR}/arm-ios-common.cmake")