From daabc237fa907609401391309b69686acc8df444 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Mon, 1 Oct 2018 09:04:19 -0700 Subject: [PATCH] SourceKit: libdispatch swift requires swift stdlib When building libdispatch for SourceKit, only enable the swift overlay components if the swift standard library is being built. This allows building just the compiler and SourceKit. --- tools/SourceKit/CMakeLists.txt | 35 +++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/tools/SourceKit/CMakeLists.txt b/tools/SourceKit/CMakeLists.txt index 304a427d350f5..44f980a6f177f 100644 --- a/tools/SourceKit/CMakeLists.txt +++ b/tools/SourceKit/CMakeLists.txt @@ -93,6 +93,12 @@ include_directories(BEFORE if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") set(SOURCEKIT_DEFAULT_TARGET_SDK "LINUX") if(SWIFT_BUILD_SOURCEKIT) + if(SWIFT_BUILD_STDLIB) + set(SOURCEKIT_LIBDISPATCH_ENABLE_SWIFT YES) + else() + set(SOURCEKIT_LIBDISPATCH_ENABLE_SWIFT NO) + endif() + include(ExternalProject) ExternalProject_Add(libdispatch SOURCE_DIR @@ -106,7 +112,7 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM} -DCMAKE_SWIFT_COMPILER=$c -DCMAKE_INSTALL_PREFIX= - -DENABLE_SWIFT=YES + -DENABLE_SWIFT=${SOURCEKIT_LIBDISPATCH_ENABLE_SWIFT} BUILD_BYPRODUCTS ${SWIFT_PATH_TO_LIBDISPATCH_BUILD}/src/${CMAKE_SHARED_LIBRARY_PREFIX}dispatch${CMAKE_SHARED_LIBRARY_SUFFIX} ${SWIFT_PATH_TO_LIBDISPATCH_BUILD}/${CMAKE_STATIC_LIBRARY_PREFIX}BlocksRuntime${CMAKE_STATIC_LIBRARY_SUFFIX} @@ -126,13 +132,16 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") include_directories(AFTER ${SWIFT_PATH_TO_LIBDISPATCH_SOURCE}/src/BlocksRuntime ${SWIFT_PATH_TO_LIBDISPATCH_SOURCE}) - add_dependencies(libdispatch - swift - copy_shim_headers - swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH} - swiftSwiftOnoneSupport-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH} - swiftCore-swiftmodule-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH} - swiftSwiftOnoneSupport-swiftmodule-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}) + + if(SWIFT_BUILD_STDLIB) + add_dependencies(libdispatch + swift + copy_shim_headers + swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH} + swiftSwiftOnoneSupport-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH} + swiftCore-swiftmodule-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH} + swiftSwiftOnoneSupport-swiftmodule-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}) + endif() endif() ExternalProject_Get_Property(libdispatch install_dir) @@ -142,9 +151,13 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") IMPORTED_LOCATION ${SWIFT_PATH_TO_LIBDISPATCH_BUILD}/src/${CMAKE_SHARED_LIBRARY_PREFIX}dispatch${CMAKE_SHARED_LIBRARY_SUFFIX} INTERFACE_INCLUDE_DIRECTORIES - ${install_dir}/include - IMPORTED_LINK_INTERFACE_LIBRARIES - swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}) + ${install_dir}/include) + if(SWIFT_BUILD_STDLIB) + set_target_properties(dispatch + PROPERTIES + IMPORTED_LINK_INTERFACE_LIBRARIES + swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}) + endif() add_library(BlocksRuntime STATIC IMPORTED) set_target_properties(BlocksRuntime