iOS.cmake 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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. SET(CMAKE_SYSTEM_NAME Darwin)
  11. SET(CMAKE_SYSTEM_VERSION 13)
  12. SET(CMAKE_CXX_COMPILER_WORKS True)
  13. SET(CMAKE_C_COMPILER_WORKS True)
  14. SET(DARWIN_TARGET_OS_NAME ios)
  15. IF(NOT DEFINED ENV{SDKROOT})
  16. execute_process(COMMAND xcodebuild -version -sdk iphoneos Path
  17. OUTPUT_VARIABLE SDKROOT
  18. ERROR_QUIET
  19. OUTPUT_STRIP_TRAILING_WHITESPACE)
  20. ELSE()
  21. execute_process(COMMAND xcodebuild -version -sdk $ENV{SDKROOT} Path
  22. OUTPUT_VARIABLE SDKROOT
  23. ERROR_QUIET
  24. OUTPUT_STRIP_TRAILING_WHITESPACE)
  25. ENDIF()
  26. IF(NOT EXISTS ${SDKROOT})
  27. MESSAGE(FATAL_ERROR "SDKROOT could not be detected!")
  28. ENDIF()
  29. set(CMAKE_OSX_SYSROOT ${SDKROOT})
  30. IF(NOT CMAKE_C_COMPILER)
  31. execute_process(COMMAND xcrun -sdk ${SDKROOT} -find clang
  32. OUTPUT_VARIABLE CMAKE_C_COMPILER
  33. ERROR_QUIET
  34. OUTPUT_STRIP_TRAILING_WHITESPACE)
  35. message(STATUS "Using c compiler ${CMAKE_C_COMPILER}")
  36. ENDIF()
  37. IF(NOT CMAKE_CXX_COMPILER)
  38. execute_process(COMMAND xcrun -sdk ${SDKROOT} -find clang++
  39. OUTPUT_VARIABLE CMAKE_CXX_COMPILER
  40. ERROR_QUIET
  41. OUTPUT_STRIP_TRAILING_WHITESPACE)
  42. message(STATUS "Using c compiler ${CMAKE_CXX_COMPILER}")
  43. ENDIF()
  44. IF(NOT CMAKE_AR)
  45. execute_process(COMMAND xcrun -sdk ${SDKROOT} -find ar
  46. OUTPUT_VARIABLE CMAKE_AR_val
  47. ERROR_QUIET
  48. OUTPUT_STRIP_TRAILING_WHITESPACE)
  49. SET(CMAKE_AR ${CMAKE_AR_val} CACHE FILEPATH "Archiver")
  50. message(STATUS "Using ar ${CMAKE_AR}")
  51. ENDIF()
  52. IF(NOT CMAKE_RANLIB)
  53. execute_process(COMMAND xcrun -sdk ${SDKROOT} -find ranlib
  54. OUTPUT_VARIABLE CMAKE_RANLIB_val
  55. ERROR_QUIET
  56. OUTPUT_STRIP_TRAILING_WHITESPACE)
  57. SET(CMAKE_RANLIB ${CMAKE_RANLIB_val} CACHE FILEPATH "Ranlib")
  58. message(STATUS "Using ranlib ${CMAKE_RANLIB}")
  59. ENDIF()
  60. IF (NOT DEFINED IOS_MIN_TARGET)
  61. execute_process(COMMAND xcodebuild -sdk ${SDKROOT} -version SDKVersion
  62. OUTPUT_VARIABLE IOS_MIN_TARGET
  63. ERROR_QUIET
  64. OUTPUT_STRIP_TRAILING_WHITESPACE)
  65. ENDIF()
  66. SET(IOS_COMMON_FLAGS "-mios-version-min=${IOS_MIN_TARGET}")
  67. SET(CMAKE_C_FLAGS "${IOS_COMMON_FLAGS}" CACHE STRING "toolchain_cflags" FORCE)
  68. SET(CMAKE_CXX_FLAGS "${IOS_COMMON_FLAGS}" CACHE STRING "toolchain_cxxflags" FORCE)
  69. SET(CMAKE_LINK_FLAGS "${IOS_COMMON_FLAGS}" CACHE STRING "toolchain_linkflags" FORCE)