# Toolchain config for iOS. # # Usage: # mkdir build; cd build # cmake ..; make # mkdir ios; cd ios # cmake -DLLVM_IOS_TOOLCHAIN_DIR=/path/to/ios/ndk \ # -DCMAKE_TOOLCHAIN_FILE=../../cmake/platforms/iOS.cmake ../.. # make SET(CMAKE_SYSTEM_NAME Darwin) SET(CMAKE_SYSTEM_VERSION 13) SET(CMAKE_CXX_COMPILER_WORKS True) SET(CMAKE_C_COMPILER_WORKS True) SET(DARWIN_TARGET_OS_NAME ios) IF(NOT DEFINED ENV{SDKROOT}) execute_process(COMMAND xcodebuild -version -sdk iphoneos Path OUTPUT_VARIABLE SDKROOT ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) ELSE() execute_process(COMMAND xcodebuild -version -sdk $ENV{SDKROOT} Path OUTPUT_VARIABLE SDKROOT ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) ENDIF() IF(NOT EXISTS ${SDKROOT}) MESSAGE(FATAL_ERROR "SDKROOT could not be detected!") ENDIF() set(CMAKE_OSX_SYSROOT ${SDKROOT}) IF(NOT CMAKE_C_COMPILER) execute_process(COMMAND xcrun -sdk ${SDKROOT} -find clang OUTPUT_VARIABLE CMAKE_C_COMPILER ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) message(STATUS "Using c compiler ${CMAKE_C_COMPILER}") ENDIF() IF(NOT CMAKE_CXX_COMPILER) execute_process(COMMAND xcrun -sdk ${SDKROOT} -find clang++ OUTPUT_VARIABLE CMAKE_CXX_COMPILER ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) message(STATUS "Using c compiler ${CMAKE_CXX_COMPILER}") ENDIF() IF(NOT CMAKE_AR) execute_process(COMMAND xcrun -sdk ${SDKROOT} -find ar OUTPUT_VARIABLE CMAKE_AR_val ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) SET(CMAKE_AR ${CMAKE_AR_val} CACHE FILEPATH "Archiver") message(STATUS "Using ar ${CMAKE_AR}") ENDIF() IF(NOT CMAKE_RANLIB) execute_process(COMMAND xcrun -sdk ${SDKROOT} -find ranlib OUTPUT_VARIABLE CMAKE_RANLIB_val ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) SET(CMAKE_RANLIB ${CMAKE_RANLIB_val} CACHE FILEPATH "Ranlib") message(STATUS "Using ranlib ${CMAKE_RANLIB}") ENDIF() IF (NOT DEFINED IOS_MIN_TARGET) execute_process(COMMAND xcodebuild -sdk ${SDKROOT} -version SDKVersion OUTPUT_VARIABLE IOS_MIN_TARGET ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) ENDIF() SET(IOS_COMMON_FLAGS "-mios-version-min=${IOS_MIN_TARGET}") SET(CMAKE_C_FLAGS "${IOS_COMMON_FLAGS}" CACHE STRING "toolchain_cflags" FORCE) SET(CMAKE_CXX_FLAGS "${IOS_COMMON_FLAGS}" CACHE STRING "toolchain_cxxflags" FORCE) SET(CMAKE_LINK_FLAGS "${IOS_COMMON_FLAGS}" CACHE STRING "toolchain_linkflags" FORCE)