summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2022-12-22 15:03:25 +0100
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2023-01-02 14:50:51 +0100
commitb0af876bed739994015372a9fa27af051a28d324 (patch)
tree504eb7a27dd17da0d13a3d30aa474e32b248e554 /cmake
parent9c56a77027db2fedfc2b50f96ceaee5003a7d383 (diff)
wasm: Flesh out side module and main module logic for shared builds
Task-number: QTBUG-63925 Change-Id: I9da8ca0364a4fe6c9ec4d272657e1cf726d305c4 Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtWasmHelpers.cmake24
1 files changed, 13 insertions, 11 deletions
diff --git a/cmake/QtWasmHelpers.cmake b/cmake/QtWasmHelpers.cmake
index 614a677ae3..9bd98368f5 100644
--- a/cmake/QtWasmHelpers.cmake
+++ b/cmake/QtWasmHelpers.cmake
@@ -93,17 +93,19 @@ function (qt_internal_setup_wasm_target_properties wasmTarget)
set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)
- # plugins are SIDE_MODULE
- target_compile_options("${wasmTarget}" INTERFACE
- "$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,MODULE_LIBRARY>:" -s SIDE_MODULE=1>)
- target_link_options("${wasmTarget}" INTERFACE
- "$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,MODULE_LIBRARY>:" -s SIDE_MODULE=1>)
-
- # shared libs are SIDE_MODULE
- target_compile_options("${wasmTarget}" INTERFACE
- "$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,SHARED_LIBRARY>:" -s SIDE_MODULE=1>)
- target_link_options("${wasmTarget}" INTERFACE
- "$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,SHARED_LIBRARY>:" -s SIDE_MODULE=1>)
+ set(side_modules
+ MODULE_LIBRARY SHARED_LIBRARY)
+ set(enable_side_module_if_needed
+ "$<$<IN_LIST:$<TARGET_PROPERTY:TYPE>,${side_modules}>:SHELL:-s SIDE_MODULE=1>")
+ set(enable_main_module_if_needed
+ "$<$<IN_LIST:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:SHELL:-s MAIN_MODULE=1>")
+ set(set_shared_module_type_if_needed
+ "${enable_side_module_if_needed}"
+ "${enable_main_module_if_needed}"
+ )
+
+ target_compile_options("${wasmTarget}" INTERFACE "${set_shared_module_type_if_needed}")
+ target_link_options("${wasmTarget}" INTERFACE "${set_shared_module_type_if_needed}")
else()
target_link_options("${wasmTarget}" INTERFACE "SHELL:-s ERROR_ON_UNDEFINED_SYMBOLS=1")