wasm: Link with FETCH library only for MAIN_MODULE

For dynamic linking only the main module should
link with libraries like "FETCH".
When side modules are linking to libraries as well,
it leads to linking errors.

Change-Id: I83e37add867f1ce2cbcab4801f49266a288a9ceb
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
(cherry picked from commit b7419557b1b0cc1a87aa91131329b65aee44ec34)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Piotr Wierciński 2024-12-11 12:12:27 +01:00 committed by Qt Cherry-pick Bot
parent b3c60bd11f
commit 80e581d91b

View File

@ -7,10 +7,10 @@ function (qt_internal_setup_wasm_target_properties wasmTarget)
target_link_options("${wasmTarget}" INTERFACE target_link_options("${wasmTarget}" INTERFACE
"SHELL:-s MAX_WEBGL_VERSION=2" "SHELL:-s MAX_WEBGL_VERSION=2"
"SHELL:-s FETCH=1"
"SHELL:-s WASM_BIGINT=1" "SHELL:-s WASM_BIGINT=1"
"SHELL:-s STACK_SIZE=5MB") "SHELL:-s STACK_SIZE=5MB")
set(executable_link_flags "-sFETCH")
## wasm64 ## wasm64
if (WASM64) if (WASM64)
target_compile_options("${wasmTarget}" INTERFACE "SHELL:-s MEMORY64=1" ) target_compile_options("${wasmTarget}" INTERFACE "SHELL:-s MEMORY64=1" )
@ -99,7 +99,7 @@ function (qt_internal_setup_wasm_target_properties wasmTarget)
set(enable_side_module_if_needed set(enable_side_module_if_needed
"$<$<IN_LIST:$<TARGET_PROPERTY:TYPE>,${side_modules}>:SHELL:-s SIDE_MODULE=1>") "$<$<IN_LIST:$<TARGET_PROPERTY:TYPE>,${side_modules}>:SHELL:-s SIDE_MODULE=1>")
set(enable_main_module_if_needed set(enable_main_module_if_needed
"$<$<IN_LIST:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:SHELL:-s MAIN_MODULE=1>") "$<$<IN_LIST:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:SHELL:-sMAIN_MODULE=1 ${executable_link_flags}>")
set(set_shared_module_type_if_needed set(set_shared_module_type_if_needed
"${enable_side_module_if_needed}" "${enable_side_module_if_needed}"
"${enable_main_module_if_needed}" "${enable_main_module_if_needed}"
@ -115,7 +115,7 @@ function (qt_internal_setup_wasm_target_properties wasmTarget)
target_link_options("${wasmTarget}" INTERFACE "${set_shared_module_type_if_needed}") target_link_options("${wasmTarget}" INTERFACE "${set_shared_module_type_if_needed}")
else() else()
target_link_options("${wasmTarget}" INTERFACE "SHELL:-s ERROR_ON_UNDEFINED_SYMBOLS=1") target_link_options("${wasmTarget}" INTERFACE "SHELL:-sERROR_ON_UNDEFINED_SYMBOLS=1 ${executable_link_flags}")
endif() endif()
# Suppress warnings for known issues for developer builds # Suppress warnings for known issues for developer builds