blob: e18ca6bcc91c7cbe47a0a5de268b1167f60140b7 [file] [log] [blame]
Chris Bieneman50077412014-09-03 23:21:18 +00001# 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
11SET(CMAKE_SYSTEM_NAME Darwin)
12SET(CMAKE_SYSTEM_VERSION 13)
13SET(CMAKE_CXX_COMPILER_WORKS True)
14SET(CMAKE_C_COMPILER_WORKS True)
15SET(DARWIN_TARGET_OS_NAME ios)
16
17IF(NOT DEFINED ENV{SDKROOT})
18 MESSAGE(FATAL_ERROR "SDKROOT env var must be set: " $ENV{SDKROOT})
19ENDIF()
20
Chris Bienemanf170d7e2015-01-30 00:10:47 +000021IF(EXISTS $ENV{SDKROOT})
22 SET(SDKROOT $ENV{SDKROOT})
23ELSE()
24 execute_process(COMMAND xcodebuild -version -sdk $ENV{SDKROOT} Path
25 OUTPUT_VARIABLE SDKROOT
26 ERROR_QUIET
27 OUTPUT_STRIP_TRAILING_WHITESPACE)
28ENDIF()
29
Chris Bieneman50077412014-09-03 23:21:18 +000030IF(NOT CMAKE_C_COMPILER)
Chris Bienemanf170d7e2015-01-30 00:10:47 +000031 execute_process(COMMAND xcrun -sdk $ENV{SDKROOT} -find clang
Chris Bieneman50077412014-09-03 23:21:18 +000032 OUTPUT_VARIABLE CMAKE_C_COMPILER
33 ERROR_QUIET
34 OUTPUT_STRIP_TRAILING_WHITESPACE)
35 message(STATUS "Using c compiler ${CMAKE_C_COMPILER}")
36ENDIF()
37
38IF(NOT CMAKE_CXX_COMPILER)
Chris Bienemanf170d7e2015-01-30 00:10:47 +000039 execute_process(COMMAND xcrun -sdk $ENV{SDKROOT} -find clang++
Chris Bieneman50077412014-09-03 23:21:18 +000040 OUTPUT_VARIABLE CMAKE_CXX_COMPILER
41 ERROR_QUIET
42 OUTPUT_STRIP_TRAILING_WHITESPACE)
43 message(STATUS "Using c compiler ${CMAKE_CXX_COMPILER}")
44ENDIF()
45
Chris Bienemanf170d7e2015-01-30 00:10:47 +000046IF(NOT CMAKE_AR)
47 execute_process(COMMAND xcrun -sdk $ENV{SDKROOT} -find ar
48 OUTPUT_VARIABLE CMAKE_AR_val
49 ERROR_QUIET
50 OUTPUT_STRIP_TRAILING_WHITESPACE)
51 SET(CMAKE_AR ${CMAKE_AR_val} CACHE FILEPATH "Archiver")
52 message(STATUS "Using ar ${CMAKE_AR}")
53ENDIF()
54
Chris Bieneman50077412014-09-03 23:21:18 +000055IF (NOT DEFINED IOS_MIN_TARGET)
Chris Bienemanf170d7e2015-01-30 00:10:47 +000056execute_process(COMMAND xcodebuild -sdk $ENV{SDKROOT} -version SDKVersion
Chris Bieneman50077412014-09-03 23:21:18 +000057 OUTPUT_VARIABLE IOS_MIN_TARGET
58 ERROR_QUIET
59 OUTPUT_STRIP_TRAILING_WHITESPACE)
60ENDIF()
61
Chris Bienemanf170d7e2015-01-30 00:10:47 +000062SET(IOS_COMMON_FLAGS "-mios-version-min=${IOS_MIN_TARGET}")
Chris Bieneman50077412014-09-03 23:21:18 +000063SET(CMAKE_C_FLAGS "${IOS_COMMON_FLAGS}" CACHE STRING "toolchain_cflags" FORCE)
64SET(CMAKE_CXX_FLAGS "${IOS_COMMON_FLAGS}" CACHE STRING "toolchain_cxxflags" FORCE)
65SET(CMAKE_LINK_FLAGS "${IOS_COMMON_FLAGS}" CACHE STRING "toolchain_linkflags" FORCE)