Skip to content

Commit

Permalink
wasm: Flesh out side module and main module logic for shared builds
Browse files Browse the repository at this point in the history
Task-number: QTBUG-63925
Change-Id: I9da8ca0364a4fe6c9ec4d272657e1cf726d305c4
Reviewed-by: Lorn Potter <[email protected]>
  • Loading branch information
torarnv committed Jan 2, 2023
1 parent 9c56a77 commit b0af876
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 11 deletions.
24 changes: 13 additions & 11 deletions cmake/QtWasmHelpers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
11 changes: 11 additions & 0 deletions mkspecs/features/wasm/wasm.prf
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,17 @@ exists($$QMAKE_QT_CONFIG) {
QMAKE_LFLAGS_DEBUG += -msimd128 -msse -msse2
}

qtConfig(shared) {
contains(TEMPLATE, .*app) {
EMCC_MODULE_FLAGS = -s MAIN_MODULE=1
}
contains(TEMPLATE, .*lib):!static: {
EMCC_MODULE_FLAGS = -s SIDE_MODULE=1
}
EMCC_CFLAGS += $$EMCC_MODULE_FLAGS
EMCC_LFLAGS += $$EMCC_MODULE_FLAGS
}

QMAKE_LFLAGS += $$EMCC_LFLAGS
QMAKE_LFLAGS_DEBUG += $$EMCC_LFLAGS
QMAKE_CFLAGS += $$EMCC_CFLAGS
Expand Down

0 comments on commit b0af876

Please sign in to comment.