77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 # Toolchain config for iOS.
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 #
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 # Usage:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 # mkdir build; cd build
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 # cmake ..; make
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 # mkdir ios; cd ios
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 # cmake -DLLVM_IOS_TOOLCHAIN_DIR=/path/to/ios/ndk \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 # -DCMAKE_TOOLCHAIN_FILE=../../cmake/platforms/iOS.cmake ../..
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 # make <target>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11 SET(CMAKE_SYSTEM_NAME Darwin)
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 SET(CMAKE_SYSTEM_VERSION 13)
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 SET(CMAKE_CXX_COMPILER_WORKS True)
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14 SET(CMAKE_C_COMPILER_WORKS True)
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 SET(DARWIN_TARGET_OS_NAME ios)
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 IF(NOT DEFINED ENV{SDKROOT})
|
95
|
18 execute_process(COMMAND xcodebuild -version -sdk iphoneos Path
|
|
19 OUTPUT_VARIABLE SDKROOT
|
|
20 ERROR_QUIET
|
|
21 OUTPUT_STRIP_TRAILING_WHITESPACE)
|
83
|
22 ELSE()
|
|
23 execute_process(COMMAND xcodebuild -version -sdk $ENV{SDKROOT} Path
|
|
24 OUTPUT_VARIABLE SDKROOT
|
|
25 ERROR_QUIET
|
|
26 OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
27 ENDIF()
|
|
28
|
95
|
29 IF(NOT EXISTS ${SDKROOT})
|
|
30 MESSAGE(FATAL_ERROR "SDKROOT could not be detected!")
|
|
31 ENDIF()
|
|
32
|
|
33 set(CMAKE_OSX_SYSROOT ${SDKROOT})
|
|
34
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
35 IF(NOT CMAKE_C_COMPILER)
|
95
|
36 execute_process(COMMAND xcrun -sdk ${SDKROOT} -find clang
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 OUTPUT_VARIABLE CMAKE_C_COMPILER
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38 ERROR_QUIET
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39 OUTPUT_STRIP_TRAILING_WHITESPACE)
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40 message(STATUS "Using c compiler ${CMAKE_C_COMPILER}")
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41 ENDIF()
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 IF(NOT CMAKE_CXX_COMPILER)
|
95
|
44 execute_process(COMMAND xcrun -sdk ${SDKROOT} -find clang++
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 OUTPUT_VARIABLE CMAKE_CXX_COMPILER
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 ERROR_QUIET
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 OUTPUT_STRIP_TRAILING_WHITESPACE)
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
48 message(STATUS "Using c compiler ${CMAKE_CXX_COMPILER}")
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
49 ENDIF()
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
50
|
83
|
51 IF(NOT CMAKE_AR)
|
95
|
52 execute_process(COMMAND xcrun -sdk ${SDKROOT} -find ar
|
83
|
53 OUTPUT_VARIABLE CMAKE_AR_val
|
|
54 ERROR_QUIET
|
|
55 OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
56 SET(CMAKE_AR ${CMAKE_AR_val} CACHE FILEPATH "Archiver")
|
|
57 message(STATUS "Using ar ${CMAKE_AR}")
|
|
58 ENDIF()
|
|
59
|
95
|
60 IF(NOT CMAKE_RANLIB)
|
|
61 execute_process(COMMAND xcrun -sdk ${SDKROOT} -find ranlib
|
|
62 OUTPUT_VARIABLE CMAKE_RANLIB_val
|
|
63 ERROR_QUIET
|
|
64 OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
65 SET(CMAKE_RANLIB ${CMAKE_RANLIB_val} CACHE FILEPATH "Ranlib")
|
|
66 message(STATUS "Using ranlib ${CMAKE_RANLIB}")
|
|
67 ENDIF()
|
|
68
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
69 IF (NOT DEFINED IOS_MIN_TARGET)
|
95
|
70 execute_process(COMMAND xcodebuild -sdk ${SDKROOT} -version SDKVersion
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
71 OUTPUT_VARIABLE IOS_MIN_TARGET
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
72 ERROR_QUIET
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
73 OUTPUT_STRIP_TRAILING_WHITESPACE)
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
74 ENDIF()
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
75
|
83
|
76 SET(IOS_COMMON_FLAGS "-mios-version-min=${IOS_MIN_TARGET}")
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
77 SET(CMAKE_C_FLAGS "${IOS_COMMON_FLAGS}" CACHE STRING "toolchain_cflags" FORCE)
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
78 SET(CMAKE_CXX_FLAGS "${IOS_COMMON_FLAGS}" CACHE STRING "toolchain_cxxflags" FORCE)
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
79 SET(CMAKE_LINK_FLAGS "${IOS_COMMON_FLAGS}" CACHE STRING "toolchain_linkflags" FORCE)
|