Skip to content

Commit 373eec2

Browse files
authored
Merge pull request #19639 from compnerd/nostdlib
SourceKit: libdispatch swift requires swift stdlib
2 parents a695d85 + daabc23 commit 373eec2

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)