| # CMAKE_SOURCE_DIR is the directory that cmake got initially invoked on. |
| # CMAKE_CURRENT_SOURCE_DIR is the current directory. If these are equal, it's |
| # a top-level build of the CMAKE_SOURCE_DIR. Otherwise, define a guard variable |
| # and return. |
| if(DEFINED SWIFT_MASTER_LOADED |
| OR NOT ${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_SOURCE_DIR}) |
| set(SWIFT_MASTER_LOADED TRUE) |
| return() |
| endif() |
| |
| set(CMAKE_INSTALL_PREFIX "${SWIFT_DEST_ROOT}${TOOLCHAIN_DIR}/usr") |
| |
| # Only happens if it's called from a top-level cmake invocation. |
| set(BUILD_STANDALONE TRUE) |
| set(SWIFT_STDLIB_BUILD_TYPE "Release") |
| set(SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES "SHARED") |
| set(SWIFT_INSTALL_COMPONENTS "sdk-overlay" CACHE STRING "") |
| set(SWIFT_DARWIN_DEPLOYMENT_VERSION_OSX "10.9" CACHE STRING "") |
| set(SWIFT_DARWIN_DEPLOYMENT_VERSION_IOS "7.0" CACHE STRING "") |
| set(SWIFT_DARWIN_DEPLOYMENT_VERSION_TVOS "9.0" CACHE STRING "") |
| set(SWIFT_DARWIN_DEPLOYMENT_VERSION_WATCHOS "2.0" CACHE STRING "") |
| |
| set(SWIFT_SOURCE_DIR "${SWIFT_SOURCE_ROOT}/src/swift" CACHE PATH "") |
| set(SWIFT_PATH_TO_LLVM_SOURCE "${SWIFT_SOURCE_ROOT}/src/llvm" CACHE PATH "") |
| set(SWIFT_NATIVE_SWIFT_TOOLS_PATH "${TOOLCHAIN_DIR}/usr/bin" CACHE PATH "") |
| set(SWIFT_SDKS ${SWIFT_HOST_VARIANT_SDK}) |
| |
| set(LLVM_CMAKE_MODULES_PATH "${SWIFT_PATH_TO_LLVM_SOURCE}/cmake/modules") |
| |
| list(APPEND CMAKE_MODULE_PATH |
| "${PROJECT_SOURCE_DIR}/../../../../cmake/modules" |
| ${LLVM_CMAKE_MODULES_PATH} |
| ) |
| |
| message(STATUS "FINDING LIPO") |
| execute_process( |
| COMMAND "xcrun" "-find" "lipo" |
| OUTPUT_VARIABLE LIPO |
| OUTPUT_STRIP_TRAILING_WHITESPACE) |
| |
| include(AddLLVM) |
| include(SwiftUtils) |
| include(SwiftSharedCMakeConfig) |
| include(AddSwift) |
| include(SwiftHandleGybSources) |
| include(SwiftConfigureSDK) |
| include(SwiftSource) |
| include(SwiftComponents) |
| include(DarwinSDKs) |
| |
| # These variables should be passed as -D variables to cmake. |
| # e.g. cmake -G Ninja -DSWIFT_HOST_VARIANT_SDK=OSX .. |
| precondition(CMAKE_INSTALL_PREFIX) |
| precondition(SWIFT_SOURCE_ROOT) |
| precondition(SWIFT_DEST_ROOT) |
| precondition(SWIFT_HOST_VARIANT_SDK) |
| precondition(TOOLCHAIN_DIR) |
| |
| # Without this line, installing components is broken. This needs refactoring. |
| swift_configure_components() |
| |
| precondition(unknown_sdks NEGATE MESSAGE "Unknown SDKs: ${unknown_sdks}") |
| precondition(SWIFT_CONFIGURED_SDKS MESSAGE "No SDKs selected.") |
| precondition(SWIFT_HOST_VARIANT_SDK MESSAGE "No SDK for host tools.") |
| |
| # ARCH is set somewhere later. |
| #precondition(SWIFT_HOST_VARIANT_ARCH MESSAGE "No arch for host tools") |