Skip to content

Commit d96dc37

Browse files
authored
Merge pull request #18676 from apple/revert-18500-swift-syntax-dependency
Revert "build: extract libdispatch build for swift"
2 parents df7df24 + fb6b24f commit d96dc37

File tree

3 files changed

+62
-70
lines changed

3 files changed

+62
-70
lines changed

CMakeLists.txt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -942,11 +942,7 @@ add_subdirectory(stdlib)
942942
if(SWIFT_INCLUDE_TOOLS)
943943
add_subdirectory(include)
944944
add_subdirectory(lib)
945-
endif()
946-
947-
include(SwiftExternal)
948-
949-
if(SWIFT_INCLUDE_TOOLS)
945+
950946
# Always include this after including stdlib/!
951947
# Refer to the large comment above the add_subdirectory(stdlib) call.
952948
# https://bugs.swift.org/browse/SR-5975

cmake/modules/SwiftExternal.cmake

Lines changed: 0 additions & 65 deletions
This file was deleted.

tools/SourceKit/CMakeLists.txt

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,67 @@ include_directories(BEFORE
9292

9393
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
9494
set(SOURCEKIT_DEFAULT_TARGET_SDK "LINUX")
95+
if(SWIFT_BUILD_SOURCEKIT)
96+
include(ExternalProject)
97+
ExternalProject_Add(libdispatch
98+
SOURCE_DIR
99+
"${SWIFT_PATH_TO_LIBDISPATCH_SOURCE}"
100+
BINARY_DIR
101+
"${SWIFT_PATH_TO_LIBDISPATCH_BUILD}"
102+
CMAKE_ARGS
103+
-DCMAKE_C_COMPILER=${PATH_TO_CLANG_BUILD}/bin/clang
104+
-DCMAKE_CXX_COMPILER=${PATH_TO_CLANG_BUILD}/bin/clang++
105+
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
106+
-DCMAKE_SWIFT_COMPILER=$<TARGET_FILE:swift>c
107+
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
108+
-DENABLE_SWIFT=YES
109+
BUILD_BYPRODUCTS
110+
${SWIFT_PATH_TO_LIBDISPATCH_BUILD}/src/${CMAKE_SHARED_LIBRARY_PREFIX}dispatch${CMAKE_SHARED_LIBRARY_SUFFIX}
111+
${SWIFT_PATH_TO_LIBDISPATCH_BUILD}/${CMAKE_STATIC_LIBRARY_PREFIX}BlocksRuntime${CMAKE_STATIC_LIBRARY_SUFFIX}
112+
STEP_TARGETS
113+
configure
114+
BUILD_ALWAYS
115+
1)
116+
117+
# CMake does not like the addition of INTERFACE_INCLUDE_DIRECTORIES without
118+
# the directory existing. Just create the location which will be populated
119+
# during the installation.
120+
ExternalProject_Get_Property(libdispatch install_dir)
121+
file(MAKE_DIRECTORY ${install_dir}/include)
122+
123+
# TODO(compnerd) this should be taken care of by the
124+
# INTERFACE_INCLUDE_DIRECTORIES below
125+
include_directories(AFTER
126+
${SWIFT_PATH_TO_LIBDISPATCH_SOURCE}/src/BlocksRuntime
127+
${SWIFT_PATH_TO_LIBDISPATCH_SOURCE})
128+
add_dependencies(libdispatch
129+
swift
130+
copy_shim_headers
131+
swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}
132+
swiftSwiftOnoneSupport-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}
133+
swiftCore-swiftmodule-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}
134+
swiftSwiftOnoneSupport-swiftmodule-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH})
135+
endif()
136+
137+
ExternalProject_Get_Property(libdispatch install_dir)
138+
add_library(dispatch SHARED IMPORTED)
139+
set_target_properties(dispatch
140+
PROPERTIES
141+
IMPORTED_LOCATION
142+
${SWIFT_PATH_TO_LIBDISPATCH_BUILD}/src/${CMAKE_SHARED_LIBRARY_PREFIX}dispatch${CMAKE_SHARED_LIBRARY_SUFFIX}
143+
INTERFACE_INCLUDE_DIRECTORIES
144+
${install_dir}/include
145+
IMPORTED_LINK_INTERFACE_LIBRARIES
146+
swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH})
147+
148+
add_library(BlocksRuntime STATIC IMPORTED)
149+
set_target_properties(BlocksRuntime
150+
PROPERTIES
151+
IMPORTED_LOCATION
152+
${SWIFT_PATH_TO_LIBDISPATCH_BUILD}/${CMAKE_STATIC_LIBRARY_PREFIX}BlocksRuntime${CMAKE_STATIC_LIBRARY_SUFFIX}
153+
INTERFACE_INCLUDE_DIRECTORIES
154+
${SWIFT_PATH_TO_LIBDISPATCH_SOURCE}/src/BlocksRuntime)
155+
95156
set(SOURCEKIT_NEED_EXPLICIT_LIBDISPATCH TRUE)
96157
endif()
97158

0 commit comments

Comments
 (0)