Chris Bieneman | 5007741 | 2014-09-03 23:21:18 +0000 | [diff] [blame] | 1 | # Toolchain config for iOS. |
| 2 | # |
| 3 | # Usage: |
| 4 | # mkdir build; cd build |
| 5 | # cmake ..; make |
| 6 | # mkdir ios; cd ios |
| 7 | # cmake -DLLVM_IOS_TOOLCHAIN_DIR=/path/to/ios/ndk \ |
| 8 | # -DCMAKE_TOOLCHAIN_FILE=../../cmake/platforms/iOS.cmake ../.. |
| 9 | # make <target> |
| 10 | |
| 11 | SET(CMAKE_SYSTEM_NAME Darwin) |
| 12 | SET(CMAKE_SYSTEM_VERSION 13) |
| 13 | SET(CMAKE_CXX_COMPILER_WORKS True) |
| 14 | SET(CMAKE_C_COMPILER_WORKS True) |
| 15 | SET(DARWIN_TARGET_OS_NAME ios) |
| 16 | |
| 17 | IF(NOT DEFINED ENV{SDKROOT}) |
| 18 | MESSAGE(FATAL_ERROR "SDKROOT env var must be set: " $ENV{SDKROOT}) |
| 19 | ENDIF() |
| 20 | |
| 21 | IF(NOT CMAKE_C_COMPILER) |
| 22 | execute_process(COMMAND xcrun -sdk iphoneos -find clang |
| 23 | OUTPUT_VARIABLE CMAKE_C_COMPILER |
| 24 | ERROR_QUIET |
| 25 | OUTPUT_STRIP_TRAILING_WHITESPACE) |
| 26 | message(STATUS "Using c compiler ${CMAKE_C_COMPILER}") |
| 27 | ENDIF() |
| 28 | |
| 29 | IF(NOT CMAKE_CXX_COMPILER) |
| 30 | execute_process(COMMAND xcrun -sdk iphoneos -find clang++ |
| 31 | OUTPUT_VARIABLE CMAKE_CXX_COMPILER |
| 32 | ERROR_QUIET |
| 33 | OUTPUT_STRIP_TRAILING_WHITESPACE) |
| 34 | message(STATUS "Using c compiler ${CMAKE_CXX_COMPILER}") |
| 35 | ENDIF() |
| 36 | |
| 37 | IF (NOT DEFINED IOS_MIN_TARGET) |
| 38 | execute_process(COMMAND xcodebuild -sdk iphoneos -version SDKVersion |
| 39 | OUTPUT_VARIABLE IOS_MIN_TARGET |
| 40 | ERROR_QUIET |
| 41 | OUTPUT_STRIP_TRAILING_WHITESPACE) |
| 42 | ENDIF() |
| 43 | |
| 44 | SET(IOS_COMMON_FLAGS "-isysroot $ENV{SDKROOT} -mios-version-min=${IOS_MIN_TARGET}") |
| 45 | SET(CMAKE_C_FLAGS "${IOS_COMMON_FLAGS}" CACHE STRING "toolchain_cflags" FORCE) |
| 46 | SET(CMAKE_CXX_FLAGS "${IOS_COMMON_FLAGS}" CACHE STRING "toolchain_cxxflags" FORCE) |
| 47 | SET(CMAKE_LINK_FLAGS "${IOS_COMMON_FLAGS}" CACHE STRING "toolchain_linkflags" FORCE) |