Skip to content

Commit daabc23

Browse files
committed
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.
1 parent e7dd7b2 commit daabc23

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

tools/SourceKit/CMakeLists.txt

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,12 @@ include_directories(BEFORE
9393
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
9494
set(SOURCEKIT_DEFAULT_TARGET_SDK "LINUX")
9595
if(SWIFT_BUILD_SOURCEKIT)
96+
if(SWIFT_BUILD_STDLIB)
97+
set(SOURCEKIT_LIBDISPATCH_ENABLE_SWIFT YES)
98+
else()
99+
set(SOURCEKIT_LIBDISPATCH_ENABLE_SWIFT NO)
100+
endif()
101+
96102
include(ExternalProject)
97103
ExternalProject_Add(libdispatch
98104
SOURCE_DIR
@@ -106,7 +112,7 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
106112
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
107113
-DCMAKE_SWIFT_COMPILER=$<TARGET_FILE:swift>c
108114
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
109-
-DENABLE_SWIFT=YES
115+
-DENABLE_SWIFT=${SOURCEKIT_LIBDISPATCH_ENABLE_SWIFT}
110116
BUILD_BYPRODUCTS
111117
${SWIFT_PATH_TO_LIBDISPATCH_BUILD}/src/${CMAKE_SHARED_LIBRARY_PREFIX}dispatch${CMAKE_SHARED_LIBRARY_SUFFIX}
112118
${SWIFT_PATH_TO_LIBDISPATCH_BUILD}/${CMAKE_STATIC_LIBRARY_PREFIX}BlocksRuntime${CMAKE_STATIC_LIBRARY_SUFFIX}
@@ -126,13 +132,16 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
126132
include_directories(AFTER
127133
${SWIFT_PATH_TO_LIBDISPATCH_SOURCE}/src/BlocksRuntime
128134
${SWIFT_PATH_TO_LIBDISPATCH_SOURCE})
129-
add_dependencies(libdispatch
130-
swift
131-
copy_shim_headers
132-
swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}
133-
swiftSwiftOnoneSupport-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}
134-
swiftCore-swiftmodule-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}
135-
swiftSwiftOnoneSupport-swiftmodule-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH})
135+
136+
if(SWIFT_BUILD_STDLIB)
137+
add_dependencies(libdispatch
138+
swift
139+
copy_shim_headers
140+
swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}
141+
swiftSwiftOnoneSupport-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}
142+
swiftCore-swiftmodule-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}
143+
swiftSwiftOnoneSupport-swiftmodule-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH})
144+
endif()
136145
endif()
137146

138147
ExternalProject_Get_Property(libdispatch install_dir)
@@ -142,9 +151,13 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
142151
IMPORTED_LOCATION
143152
${SWIFT_PATH_TO_LIBDISPATCH_BUILD}/src/${CMAKE_SHARED_LIBRARY_PREFIX}dispatch${CMAKE_SHARED_LIBRARY_SUFFIX}
144153
INTERFACE_INCLUDE_DIRECTORIES
145-
${install_dir}/include
146-
IMPORTED_LINK_INTERFACE_LIBRARIES
147-
swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH})
154+
${install_dir}/include)
155+
if(SWIFT_BUILD_STDLIB)
156+
set_target_properties(dispatch
157+
PROPERTIES
158+
IMPORTED_LINK_INTERFACE_LIBRARIES
159+
swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH})
160+
endif()
148161

149162
add_library(BlocksRuntime STATIC IMPORTED)
150163
set_target_properties(BlocksRuntime

0 commit comments

Comments
 (0)