forked from Kitware/VTK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ios.simulator.toolchain.cmake.in
100 lines (85 loc) · 3.63 KB
/
ios.simulator.toolchain.cmake.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
set(CMAKE_SYSTEM_NAME Darwin)
message(STATUS "iPhoneSimulator Toolchain Config for @IOS_SIMULATOR_ARCHITECTURES@")
# Set developer directory
execute_process(COMMAND /usr/bin/xcode-select -print-path
OUTPUT_VARIABLE XCODE_DEVELOPER_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE)
# Locate gcc
execute_process(COMMAND /usr/bin/xcrun -sdk iphonesimulator -find gcc
OUTPUT_VARIABLE CMAKE_C_COMPILER
OUTPUT_STRIP_TRAILING_WHITESPACE)
# Locate g++
execute_process(COMMAND /usr/bin/xcrun -sdk iphonesimulator -find g++
OUTPUT_VARIABLE CMAKE_CXX_COMPILER
OUTPUT_STRIP_TRAILING_WHITESPACE)
# Set the CMAKE_OSX_SYSROOT to the latest SDK found
execute_process(COMMAND /usr/bin/xcrun -sdk iphonesimulator --show-sdk-path
OUTPUT_VARIABLE CMAKE_OSX_SYSROOT
OUTPUT_STRIP_TRAILING_WHITESPACE)
# Set compilation flags
set(CMAKE_OSX_ARCHITECTURES @IOS_SIMULATOR_ARCHITECTURES@)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mios-simulator-version-min=@IOS_DEPLOYMENT_TARGET@ -fvisibility=hidden -fvisibility-inlines-hidden")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mios-simulator-version-min=@IOS_DEPLOYMENT_TARGET@ -fvisibility=hidden -fvisibility-inlines-hidden")
set(CMAKE_OSX_ARCHITECTURES "${CMAKE_OSX_ARCHITECTURES}" CACHE STRING "osx architectures")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "c++ flags")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags")
set(CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT}" CACHE PATH "osx sysroot")
set(CMAKE_FIND_ROOT_PATH ${CMAKE_OSX_SYSROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(APPLE_IOS ON)
set(TARGET_IPHONE_SIMULATOR ON)
#
# Legacy search (xcrun is not available).
#
# gcc
if (NOT CMAKE_C_COMPILER)
find_program(CMAKE_C_COMPILER NAME gcc
PATHS
"${XCODE_DEVELOPER_DIR}/Platforms/iPhoneSimulator.platform/Developer/usr/bin/"
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/
NO_DEFAULT_PATH)
endif()
# g++
if (NOT CMAKE_CXX_COMPILER)
find_program(CMAKE_CXX_COMPILER NAME g++
PATHS
"{XCODE_DEVELOPER_DIR}/Platforms/iPhoneSimulator.platform/Developer/usr/bin/"
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/
NO_DEFAULT_PATH)
endif()
# sysroot
if (NOT CMAKE_OSX_SYSROOT)
set(possible_sdk_roots
"${XCODE_DEVELOPER_DIR}/Platforms/iPhoneSimulator.platform/Developer/SDKs"
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
)
foreach(sdk_root ${possible_sdk_roots})
foreach(sdk
iPhoneSimulator7.0.sdk
iPhoneSimulator7.1.sdk
iPhoneSimulator8.0.sdk
iPhoneSimulator9.0.sdk
iPhoneSimulator9.1.sdk
iPhoneSimulator9.2.sdk
iPhoneSimulator9.3.sdk # guess
iPhoneSimulator9.4.sdk # guess
iPhoneSimulator10.0.sdk # guess
iPhoneSimulator10.1.sdk # guess
)
if (EXISTS ${sdk_root}/${sdk} AND IS_DIRECTORY ${sdk_root}/${sdk})
set(CMAKE_OSX_SYSROOT ${sdk_root}/${sdk})
endif()
endforeach()
endforeach()
endif()
if (NOT CMAKE_OSX_SYSROOT)
message(FATAL_ERROR "Could not find a usable iOS SDK in ${sdk_root}")
endif()
message(STATUS "gcc found at: ${CMAKE_C_COMPILER}")
message(STATUS "g++ found at: ${CMAKE_CXX_COMPILER}")
message(STATUS "Using iOS SDK: ${CMAKE_OSX_SYSROOT}")