mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[build] Add initial support for Emscripten SDK
This patch adds initial support for Emscripten SDK alongside the existing support for WASI SDK. This is a first step towards building a part of Swift compiler for Emscripten target (which will be used to build LLDB with Swift to WebAssembly target).
This commit is contained in:
@@ -106,6 +106,12 @@ function(_add_host_variant_c_compile_link_flags name)
|
||||
if("${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "MSVC") # clang-cl options
|
||||
target_compile_options(${name} PRIVATE $<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:--target=${SWIFT_HOST_TRIPLE}>)
|
||||
target_link_options(${name} PRIVATE $<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:--target=${SWIFT_HOST_TRIPLE}>)
|
||||
elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "EMSCRIPTEN") # emcc options
|
||||
# some older emcc don't understand -target=<triple>
|
||||
# FIXME: remove this when we no longer support Emscripten < 3.1.44
|
||||
# https://github.com/emscripten-core/emscripten/pull/19840
|
||||
target_compile_options(${name} PRIVATE $<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:--target=${SWIFT_HOST_TRIPLE}>)
|
||||
target_link_options(${name} PRIVATE $<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:-target=${SWIFT_HOST_TRIPLE}>)
|
||||
else()
|
||||
target_compile_options(${name} PRIVATE $<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:-target;${SWIFT_HOST_TRIPLE}>)
|
||||
target_link_options(${name} PRIVATE $<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:-target;${SWIFT_HOST_TRIPLE}>)
|
||||
|
||||
@@ -322,6 +322,7 @@ macro(configure_sdk_unix name architectures)
|
||||
# Static linking is supported on Linux and WASI
|
||||
if("${prefix}" STREQUAL "LINUX"
|
||||
OR "${prefix}" STREQUAL "LINUX_STATIC"
|
||||
OR "${prefix}" STREQUAL "EMSCRIPTEN"
|
||||
OR "${prefix}" STREQUAL "WASI")
|
||||
set(SWIFT_SDK_${prefix}_STATIC_LINKING_SUPPORTED TRUE)
|
||||
else()
|
||||
@@ -461,6 +462,8 @@ macro(configure_sdk_unix name architectures)
|
||||
else()
|
||||
set(SWIFT_SDK_WASI_ARCH_wasm32_TRIPLE "wasm32-unknown-wasi")
|
||||
endif()
|
||||
elseif("${prefix}" STREQUAL "EMSCRIPTEN")
|
||||
set(SWIFT_SDK_EMSCRIPTEN_ARCH_${arch}_TRIPLE "${arch}-unknown-emscripten")
|
||||
elseif("${prefix}" STREQUAL "LINUX_STATIC")
|
||||
set(SWIFT_SDK_LINUX_STATIC_ARCH_${arch}_TRIPLE "${arch}-swift-linux-musl")
|
||||
set(SWIFT_SDK_LINUX_STATIC_ARCH_${arch}_PATH "${SWIFT_MUSL_PATH}/${arch}")
|
||||
|
||||
Reference in New Issue
Block a user