mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
107 lines
3.4 KiB
CMake
107 lines
3.4 KiB
CMake
# Toolchain configuration when compiling for Darwin Platforms
|
|
set(CMAKE_SYSTEM_NAME Darwin)
|
|
set(CMAKE_Swift_COMPILER_WORKS YES)
|
|
set(CMAKE_C_COMPILER_WORKS YES)
|
|
set(CMAKE_CXX_COMPILER_WORKS YES)
|
|
|
|
find_program(XCRUN_EXECUTABLE NAMES "xcrun" REQUIRED)
|
|
|
|
if(NOT CMAKE_OSX_SYSROOT)
|
|
if(NOT DEFINED ENV{SDKROOT})
|
|
message(FATAL_ERROR "`CMAKE_OSX_SYSROOT` and the 'SDKROOT' environment variable are not set")
|
|
endif()
|
|
|
|
execute_process(COMMAND "${XCRUN_EXECUTABLE}" --show-sdk-path -sdk $ENV{SDKROOT}
|
|
OUTPUT_VARIABLE SDKROOT
|
|
ERROR_QUIET
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
|
if(NOT EXISTS ${SDKROOT})
|
|
message(FATAL_ERROR "SDKROOT could not be detected!")
|
|
endif()
|
|
|
|
message(STATUS "Using SDKROOT: ${SDKROOT}")
|
|
set(CMAKE_OSX_SYSROOT "${SDKROOT}" CACHE FILEPATH "")
|
|
endif()
|
|
|
|
if(NOT CMAKE_C_COMPILER)
|
|
execute_process(COMMAND "${XCRUN_EXECUTABLE}" --sdk ${CMAKE_OSX_SYSROOT} --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_EXECUTABLE}" --sdk ${CMAKE_OSX_SYSROOT} --find clang++
|
|
OUTPUT_VARIABLE CMAKE_CXX_COMPILER
|
|
ERROR_QUIET
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
message(STATUS "Using CXX compiler ${CMAKE_CXX_COMPILER}")
|
|
endif()
|
|
|
|
if(NOT CMAKE_Swift_COMPILER)
|
|
execute_process(COMMAND "${XCRUN_EXECUTABLE}" --sdk ${CMAKE_OSX_SYSROOT} --find swiftc
|
|
OUTPUT_VARIABLE CMAKE_Swift_COMPILER
|
|
ERROR_QUIET
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
message(STATUS "Using Swift compiler ${CMAKE_Swift_COMPILER}")
|
|
endif()
|
|
|
|
if(NOT CMAKE_AR)
|
|
execute_process(COMMAND "${XCRUN_EXECUTABLE}" --sdk ${CMAKE_OSX_SYSROOT} --find ar
|
|
OUTPUT_VARIABLE CMAKE_AR
|
|
ERROR_QUIET
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
message(STATUS "Using ar ${CMAKE_AR}")
|
|
endif()
|
|
|
|
if(NOT CMAKE_RANLIB)
|
|
execute_process(COMMAND "${XCRUN_EXECUTABLE}" --sdk ${CMAKE_OSX_SYSROOT} --find ranlib
|
|
OUTPUT_VARIABLE CMAKE_RANLIB
|
|
ERROR_QUIET
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
message(STATUS "Using ranlib ${CMAKE_RANLIB}")
|
|
endif()
|
|
|
|
if(NOT CMAKE_STRIP)
|
|
execute_process(COMMAND "${XCRUN_EXECUTABLE}" --sdk ${CMAKE_OSX_SYSROOT} --find strip
|
|
OUTPUT_VARIABLE CMAKE_STRIP
|
|
ERROR_QUIET
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
message(STATUS "Using strip ${CMAKE_STRIP}")
|
|
endif()
|
|
|
|
if(NOT CMAKE_DSYMUTIL)
|
|
execute_process(COMMAND "${XCRUN_EXECUTABLE}" --sdk ${CMAKE_OSX_SYSROOT} --find dsymutil
|
|
OUTPUT_VARIABLE CMAKE_DSYMUTIL
|
|
ERROR_QUIET
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
message(STATUS "Using dsymutil ${CMAKE_DSYMUTIL}")
|
|
endif()
|
|
|
|
if(NOT CMAKE_LIBTOOL)
|
|
execute_process(COMMAND "${XCRUN_EXECUTABLE}" --sdk ${CMAKE_OSX_SYSROOT} --find libtool
|
|
OUTPUT_VARIABLE CMAKE_LIBTOOL
|
|
ERROR_QUIET
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
message(STATUS "Using libtool ${CMAKE_LIBTOOL}")
|
|
endif()
|
|
|
|
if(NOT CMAKE_CODESIGN)
|
|
execute_process(COMMAND "${XCRUN_EXECUTABLE}" --sdk ${CMAKE_OSX_SYSROOT} --find codesign
|
|
OUTPUT_VARIABLE CMAKE_CODESIGN
|
|
ERROR_QUIET
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
message(STATUS "Using codesign ${CMAKE_CODESIGN}")
|
|
endif()
|
|
|
|
if(NOT CMAKE_CODESIGN_ALLOCATE)
|
|
execute_process(
|
|
COMMAND "${XCRUN_EXECUTABLE}" --sdk ${CMAKE_OSX_SYSROOT} --find codesign_allocate
|
|
OUTPUT_VARIABLE CMAKE_CODESIGN_ALLOCATE
|
|
ERROR_QUIET
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
message(STATUS "Using codesign_allocate ${CMAKE_CODESIGN_ALLOCATE}")
|
|
endif()
|