Skip to content

Commit 1b3daf9

Browse files
[WASM] Added new Object format WASM to distinguish from ELF
1 parent f4c2205 commit 1b3daf9

File tree

4 files changed

+21
-3
lines changed

4 files changed

+21
-3
lines changed

cmake/modules/AddSwift.cmake

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1000,7 +1000,8 @@ function(_add_swift_library_single target name)
10001000
${INCORPORATED_OBJECT_LIBRARIES_EXPRESSIONS}
10011001
${SWIFTLIB_SINGLE_XCODE_WORKAROUND_SOURCES})
10021002
if(("${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_OBJECT_FORMAT}" STREQUAL "ELF" OR
1003-
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_OBJECT_FORMAT}" STREQUAL "COFF") AND
1003+
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_OBJECT_FORMAT}" STREQUAL "COFF" OR
1004+
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_OBJECT_FORMAT}" STREQUAL "WASM") AND
10041005
SWIFTLIB_SINGLE_TARGET_LIBRARY)
10051006
if("${libkind}" STREQUAL "SHARED" AND NOT SWIFTLIB_SINGLE_NOSWIFTRT)
10061007
# TODO(compnerd) switch to the generator expression when cmake is upgraded

cmake/modules/SwiftConfigureSDK.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,8 @@ macro(configure_sdk_unix name architectures)
203203
set(SWIFT_SDK_${prefix}_ARCHITECTURES "${architectures}")
204204
if("${prefix}" STREQUAL "CYGWIN")
205205
set(SWIFT_SDK_${prefix}_OBJECT_FORMAT "COFF")
206+
elseif("${prefix}" STREQUAL "WASM")
207+
set(SWIFT_SDK_${prefix}_OBJECT_FORMAT "WASM")
206208
else()
207209
set(SWIFT_SDK_${prefix}_OBJECT_FORMAT "ELF")
208210
endif()

lib/Driver/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ target_link_libraries(swiftDriver PRIVATE
3131
if(SWIFT_BUILD_STATIC_STDLIB)
3232
set(static_stdlib_lnk_file_list)
3333
foreach(sdk ${SWIFT_CONFIGURED_SDKS})
34-
if("${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "ELF")
34+
if("${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "ELF" OR
35+
"${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "WASM")
3536
string(TOLOWER "${sdk}" lowercase_sdk)
3637
if(SWIFT_${SWIFT_HOST_VARIANT_SDK}_${SWIFT_HOST_VARIANT_ARCH}_ICU_STATICLIB)
3738
set(ICU_STATICLIB "TRUE")

stdlib/public/runtime/CMakeLists.txt

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,11 +173,14 @@ add_swift_target_library(swiftRuntime OBJECT_LIBRARY
173173

174174
set(ELFISH_SDKS)
175175
set(COFF_SDKS)
176+
set(WASM_SDKS)
176177
foreach(sdk ${SWIFT_CONFIGURED_SDKS})
177178
if("${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "ELF")
178179
list(APPEND ELFISH_SDKS ${sdk})
179180
elseif("${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "COFF")
180181
list(APPEND COFF_SDKS ${sdk})
182+
elseif("${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "WASM")
183+
list(APPEND WASM_SDKS ${sdk})
181184
endif()
182185
endforeach()
183186

@@ -189,6 +192,16 @@ add_swift_target_library(swiftImageRegistrationObjectELF
189192
TARGET_SDKS ${ELFISH_SDKS}
190193
SWIFT_COMPILE_FLAGS ${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
191194
INSTALL_IN_COMPONENT none)
195+
196+
add_swift_target_library(swiftImageRegistrationObjectWASM
197+
OBJECT_LIBRARY IS_STDLIB IS_STDLIB_CORE
198+
SwiftRT-WASM.cpp
199+
C_COMPILE_FLAGS ${SWIFT_RUNTIME_CORE_CXX_FLAGS}
200+
LINK_FLAGS ${SWIFT_RUNTIME_CORE_LINK_FLAGS}
201+
TARGET_SDKS ${WASM_SDKS}
202+
SWIFT_COMPILE_FLAGS ${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
203+
INSTALL_IN_COMPONENT none)
204+
192205
# FIXME(compnerd) this should be compiled twice, once for static and once for
193206
# shared. The static version should be used for building the standard library.
194207
add_swift_target_library(swiftImageRegistrationObjectCOFF
@@ -206,7 +219,8 @@ foreach(sdk ${SWIFT_CONFIGURED_SDKS})
206219
set(arch_suffix "${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}")
207220

208221
if("${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "ELF" OR
209-
"${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "COFF")
222+
"${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "COFF" OR
223+
"${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "WASM")
210224
# TODO(compnerd) switch to the generator expression when cmake is upgraded
211225
# to a version which supports it.
212226
# set(swiftrtObject "$<TARGET_OBJECTS:swiftImageRegistrationObject${SWIFT_SDK_${sdk}_OBJECT_FORMAT}-${arch_suffix}>")

0 commit comments

Comments
 (0)