summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSaikari <[email protected]>2026-02-24 02:07:19 +0300
committerSaikari <[email protected]>2026-02-24 02:07:19 +0300
commit86a2b93c90df24d5876bea023e8346ad358bddae (patch)
tree12ffb8503003c8da53b13d770039c60ac18d584b
parentb8bcc5f0d62d310050ebd9e2437b3e499e1a2177 (diff)
Refactor Qt WASM build configuration by removing unused plugin handling in load imports
-rw-r--r--xmake/rules/qt/load.lua12
-rw-r--r--xmake/rules/qt/xmake.lua18
2 files changed, 8 insertions, 22 deletions
diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua
index c09294a70..6cc9cdb5e 100644
--- a/xmake/rules/qt/load.lua
+++ b/xmake/rules/qt/load.lua
@@ -525,15 +525,15 @@ function main(target, opt)
-- @see QtWasmHelpers.cmake: qt_internal_setup_wasm_target_properties
target:add("ldflags", "-s MAX_WEBGL_VERSION=2", "-s WASM_BIGINT=1", "-s STACK_SIZE=5MB")
target:add("ldflags", "-sASYNCIFY_IMPORTS=qt_asyncify_suspend_js,qt_asyncify_resume_js")
- -- FS is required for qtloader.js even if we don't use preload files
- target:add("ldflags", "-s EXPORTED_RUNTIME_METHODS=UTF16ToString,stringToUTF16,JSEvents,specialHTMLTargets,FS,callMain,cwrap,ccall,setValue,getValue,UTF8ToString,stringToUTF8")
- -- @see https://github.com/emscripten-core/emscripten/issues/21844 Export main and emscripten_thread_crashed for qtloader.js
- target:add("ldflags", "-s EXPORTED_FUNCTIONS=_main,_malloc,_free,__embind_initialize_bindings", {force = true})
+ -- @see Qt6WasmMacros.cmake: _qt_internal_add_wasm_extra_exported_methods
+ target:add("ldflags", "-s EXPORTED_RUNTIME_METHODS=UTF16ToString,stringToUTF16,JSEvents,specialHTMLTargets,FS,callMain")
+ -- @see https://github.com/emscripten-core/emscripten/issues/21844
+ target:add("ldflags", "-s EXPORTED_FUNCTIONS=_main,__embind_initialize_bindings", {force = true})
target:add("ldflags", "-s MODULARIZE=1", "-s EXPORT_NAME=createQtAppInstance")
target:add("shflags", "-s MAX_WEBGL_VERSION=2", "-s WASM_BIGINT=1", "-s STACK_SIZE=5MB")
target:add("shflags", "-sASYNCIFY_IMPORTS=qt_asyncify_suspend_js,qt_asyncify_resume_js")
- target:add("shflags", "-s EXPORTED_RUNTIME_METHODS=UTF16ToString,stringToUTF16,JSEvents,specialHTMLTargets,FS,callMain,cwrap,ccall,setValue,getValue,UTF8ToString,stringToUTF8")
- target:add("shflags", "-s EXPORTED_FUNCTIONS=_main,_malloc,_free,__embind_initialize_bindings", {force = true})
+ target:add("shflags", "-s EXPORTED_RUNTIME_METHODS=UTF16ToString,stringToUTF16,JSEvents,specialHTMLTargets,FS,callMain")
+ target:add("shflags", "-s EXPORTED_FUNCTIONS=_main,__embind_initialize_bindings", {force = true})
target:add("shflags", "-s MODULARIZE=1", "-s EXPORT_NAME=createQtAppInstance")
target:set("extension", ".js")
else
diff --git a/xmake/rules/qt/xmake.lua b/xmake/rules/qt/xmake.lua
index 048f163e4..d492da1f8 100644
--- a/xmake/rules/qt/xmake.lua
+++ b/xmake/rules/qt/xmake.lua
@@ -193,14 +193,7 @@ rule("qt.widgetapp")
if qt_sdkver and qt_sdkver:lt("5.0") then
frameworks = {"QtGui", "QtCore"} -- qt4.x has not QtWidgets, it is in QtGui
end
-
- local plugins = {}
- if target:is_plat("wasm") then
- local static_frameworks, static_plugins = import("config_static")(target)
- table.join2(frameworks, static_frameworks)
- plugins = static_plugins
- end
- import("load")(target, {gui = true, frameworks = frameworks, plugins = plugins})
+ import("load")(target, {gui = true, frameworks = frameworks})
end)
-- deploy application
@@ -258,14 +251,7 @@ rule("qt.quickapp")
end)
on_config(function (target)
- local frameworks = {"QtGui", "QtQuick", "QtQml", "QtCore", "QtNetwork"}
- local plugins = {}
- if target:is_plat("wasm") then
- local static_frameworks, static_plugins = import("config_static")(target)
- table.join2(frameworks, static_frameworks)
- plugins = static_plugins
- end
- import("load")(target, {gui = true, frameworks = frameworks, plugins = plugins})
+ import("load")(target, {gui = true, frameworks = {"QtGui", "QtQuick", "QtQml", "QtCore", "QtNetwork"}})
end)
-- deploy application