Files
swift-mirror/Runtimes/cmake/toolchains/Darwin.toolchain.cmake
Justice Adams 6fee86d156 [cmake] add Synchronization specific cache files (#81618)
Add the cache files relevant for building the Synchronization
supplemental library
2025-05-23 13:42:08 -05:00

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()