Skip to content

Commit 438d650

Browse files
Merge pull request #5502 from swiftwasm/katei/minimize-build-system-diffs
Minimize stdlib/public/Platform/CMakeLists.txt changes
2 parents c59d3f1 + 2205d2a commit 438d650

File tree

1 file changed

+34
-95
lines changed

1 file changed

+34
-95
lines changed

stdlib/public/Platform/CMakeLists.txt

Lines changed: 34 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -98,90 +98,21 @@ add_swift_target_library(swiftGlibc ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_O
9898
INSTALL_IN_COMPONENT sdk-overlay
9999
DEPENDS glibc_modulemap)
100100

101-
if(WASI IN_LIST SWIFT_SDKS)
102-
set(arch_subdir "${SWIFT_SDK_WASI_LIB_SUBDIR}/wasm32")
103-
set(module_dir "${SWIFTLIB_DIR}/${arch_subdir}")
104-
set(module_dir_static "${SWIFTSTATICLIB_DIR}/${arch_subdir}")
105-
set(wasi_libc_modulemap_out "${module_dir}/wasi.modulemap")
106-
set(wasi_libc_modulemap_out_static "${module_dir_static}/wasi.modulemap")
107-
set(wasi_libc_modulemap_target_list)
108-
handle_gyb_source_single(wasi_libc_modulemap_target
109-
SOURCE "wasi.modulemap.gyb"
110-
OUTPUT "${wasi_libc_modulemap_out}"
111-
FLAGS "-DLIBC_INCLUDE_PATH=${SWIFT_SDK_WASI_ARCH_wasm32_LIBC_INCLUDE_DIRECTORY}"
112-
"-DLIBC_ARCH_INCLUDE_PATH=${SWIFT_SDK_WASI_ARCH_wasm32_LIBC_ARCHITECTURE_INCLUDE_DIRECTORY}")
113-
list(APPEND wasi_libc_modulemap_target_list ${wasi_libc_modulemap_target})
114-
115-
add_custom_command_target(
116-
copy_wasi_libc_modulemap_static
117-
COMMAND
118-
"${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir_static}
119-
COMMAND
120-
"${CMAKE_COMMAND}" "-E" "copy" ${wasi_libc_modulemap_out} ${wasi_libc_modulemap_out_static}
121-
OUTPUT ${wasi_libc_modulemap_out_static}
122-
DEPENDS
123-
"${wasi_libc_modulemap_target}"
124-
COMMENT "Copying WASILlibc modulemap to static resources")
125-
126-
list(APPEND wasi_libc_modulemap_target_list ${copy_wasi_libc_modulemap_static})
127-
128-
set(wasi_libc_header_out "${module_dir}/SwiftWASILibc.h")
129-
set(wasi_libc_header_out_static "${module_dir_static}/SwiftWASILibc.h")
130-
handle_gyb_source_single(wasi_libc_header_target
131-
SOURCE "SwiftWASILibc.h.gyb"
132-
OUTPUT "${wasi_libc_header_out}"
133-
FLAGS "-DCMAKE_SDK=${sdk}")
134-
list(APPEND wasi_libc_modulemap_target_list ${wasi_libc_header_target})
135-
136-
add_custom_command_target(
137-
copy_wasi_libc_header_static
138-
COMMAND
139-
"${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir_static}
140-
COMMAND
141-
"${CMAKE_COMMAND}" "-E" "copy" ${wasi_libc_header_out} ${wasi_libc_header_out_static}
142-
OUTPUT ${wasi_libc_header_out_static}
143-
DEPENDS
144-
"${wasi_libc_header_target}"
145-
COMMENT "Copying WASILlibc header to static resources")
146-
list(APPEND wasi_libc_modulemap_target_list ${copy_wasi_libc_header_static})
147-
148-
add_swift_target_library(swiftWASILibc ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
149-
${swift_platform_sources}
150-
POSIXError.swift
101+
add_swift_target_library(swiftWASILibc ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
102+
${swift_platform_sources}
103+
POSIXError.swift
151104

152-
GYB_SOURCES
153-
${swift_platform_gyb_sources}
154-
WASI.swift.gyb
105+
GYB_SOURCES
106+
${swift_platform_gyb_sources}
107+
WASI.swift.gyb
155108

156-
SWIFT_COMPILE_FLAGS
157-
${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}
158-
${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
159-
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
160-
TARGET_SDKS WASI
161-
INSTALL_IN_COMPONENT sdk-overlay
162-
DEPENDS ${wasi_libc_modulemap_target_list})
163-
164-
swift_install_in_component(FILES "${wasi_libc_modulemap_out}"
165-
DESTINATION "lib/swift/${arch_subdir}"
166-
COMPONENT sdk-overlay)
167-
168-
swift_install_in_component(FILES "${wasi_libc_modulemap_out}"
169-
DESTINATION "lib/swift_static/${arch_subdir}"
170-
COMPONENT sdk-overlay)
171-
172-
swift_install_in_component(FILES "${wasi_libc_header_out}"
173-
DESTINATION "lib/swift/${arch_subdir}"
174-
COMPONENT sdk-overlay)
175-
176-
swift_install_in_component(FILES "${wasi_libc_header_out}"
177-
DESTINATION "lib/swift_static/${arch_subdir}"
178-
COMPONENT sdk-overlay)
179-
180-
add_custom_target(wasi_libc_modulemap
181-
DEPENDS ${wasi_libc_modulemap_target_list})
182-
set_property(TARGET wasi_libc_modulemap PROPERTY FOLDER "Miscellaneous")
183-
add_dependencies(sdk-overlay wasi_libc_modulemap)
184-
endif()
109+
SWIFT_COMPILE_FLAGS
110+
${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}
111+
${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
112+
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
113+
TARGET_SDKS WASI
114+
INSTALL_IN_COMPONENT sdk-overlay
115+
DEPENDS glibc_modulemap)
185116

186117
add_swift_target_library(swiftCRT ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
187118
ucrt.swift
@@ -202,23 +133,31 @@ add_swift_target_library(swiftCRT ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVE
202133

203134
set(glibc_modulemap_target_list)
204135
foreach(sdk ${SWIFT_SDKS})
205-
if(NOT "${sdk}" STREQUAL "LINUX" AND
206-
NOT "${sdk}" STREQUAL "FREEBSD" AND
207-
NOT "${sdk}" STREQUAL "OPENBSD" AND
208-
NOT "${sdk}" STREQUAL "ANDROID" AND
209-
NOT "${sdk}" STREQUAL "CYGWIN" AND
210-
NOT "${sdk}" STREQUAL "HAIKU")
136+
if("${sdk}" STREQUAL "LINUX" OR
137+
"${sdk}" STREQUAL "FREEBSD" OR
138+
"${sdk}" STREQUAL "OPENBSD" OR
139+
"${sdk}" STREQUAL "ANDROID" OR
140+
"${sdk}" STREQUAL "CYGWIN" OR
141+
"${sdk}" STREQUAL "HAIKU")
142+
set(glibc_modulemap_source "glibc.modulemap.gyb")
143+
set(glibc_header_source "SwiftGlibc.h.gyb")
144+
elseif("${sdk}" STREQUAL "WASI")
145+
set(glibc_modulemap_source "wasi.modulemap.gyb")
146+
set(glibc_header_source "SwiftWASILibc.h.gyb")
147+
else()
211148
continue()
212149
endif()
213150

151+
string(REGEX REPLACE "\\.gyb$" "" glibc_modulemap_outname "${glibc_modulemap_source}")
152+
string(REGEX REPLACE "\\.gyb$" "" glibc_header_outname "${glibc_header_source}")
153+
214154
foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES})
215155
set(arch_subdir "${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${arch}")
216156
set(module_dir "${SWIFTLIB_DIR}/${arch_subdir}")
217157
set(module_dir_static "${SWIFTSTATICLIB_DIR}/${arch_subdir}")
218158

219-
set(glibc_modulemap_source "glibc.modulemap.gyb")
220-
set(glibc_modulemap_out "${module_dir}/glibc.modulemap")
221-
set(glibc_modulemap_out_static "${module_dir_static}/glibc.modulemap")
159+
set(glibc_modulemap_out "${module_dir}/${glibc_modulemap_outname}")
160+
set(glibc_modulemap_out_static "${module_dir_static}/${glibc_modulemap_outname}")
222161

223162
# Configure the module map based on the target. Each platform needs to
224163
# reference different headers, based on what's available in their glibc.
@@ -232,10 +171,10 @@ foreach(sdk ${SWIFT_SDKS})
232171

233172
list(APPEND glibc_modulemap_target_list ${glibc_modulemap_target})
234173

235-
set(glibc_header_out "${module_dir}/SwiftGlibc.h")
236-
set(glibc_header_out_static "${module_dir_static}/SwiftGlibc.h")
174+
set(glibc_header_out "${module_dir}/${glibc_header_outname}")
175+
set(glibc_header_out_static "${module_dir_static}/${glibc_header_outname}")
237176
handle_gyb_source_single(glibc_header_target
238-
SOURCE "SwiftGlibc.h.gyb"
177+
SOURCE "${glibc_header_source}"
239178
OUTPUT "${glibc_header_out}"
240179
FLAGS "-DCMAKE_SDK=${sdk}")
241180
list(APPEND glibc_modulemap_target_list ${glibc_header_target})
@@ -266,7 +205,7 @@ foreach(sdk ${SWIFT_SDKS})
266205
# prefix. This is the one we'll install instead.
267206
if(NOT "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${arch}_PATH}" STREQUAL "/" AND
268207
NOT (${sdk} STREQUAL ANDROID AND NOT "${SWIFT_ANDROID_NATIVE_SYSROOT}" STREQUAL ""))
269-
set(glibc_sysroot_relative_modulemap_out "${module_dir}/sysroot-relative-modulemaps/glibc.modulemap")
208+
set(glibc_sysroot_relative_modulemap_out "${module_dir}/sysroot-relative-modulemaps/${glibc_modulemap_outname}")
270209

271210
handle_gyb_source_single(glibc_modulemap_native_target
272211
SOURCE "${glibc_modulemap_source}"

0 commit comments

Comments
 (0)