diff options
| -rw-r--r-- | xmake/rules/qt/config_static.lua | 2 | ||||
| -rw-r--r-- | xmake/rules/qt/load.lua | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/xmake/rules/qt/config_static.lua b/xmake/rules/qt/config_static.lua index 4cf943d13..461a1b238 100644 --- a/xmake/rules/qt/config_static.lua +++ b/xmake/rules/qt/config_static.lua @@ -59,7 +59,7 @@ function main(target) table.insert(frameworks, QtPlatformSupport) end elseif target:is_plat("wasm") then - plugins.QWasmIntegrationPlugin = {linkdirs = "plugins/platforms", links = {"qwasm"}} + plugins.QWasmIntegrationPlugin = {linkdirs = "plugins/platforms", links = {"qwasm"}, resources = {"wasmwindow", "wasmfonts"}} if qt_sdkver:ge("6.0") then table.join2(frameworks, "QtOpenGL") else diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua index 2c7b6c73f..38618553f 100644 --- a/xmake/rules/qt/load.lua +++ b/xmake/rules/qt/load.lua @@ -98,6 +98,9 @@ function _add_plugins(target, plugins) if plugin.linkdirs then target:values_add("qt.linkdirs", table.unpack(table.wrap(plugin.linkdirs))) end + if plugin.resources then + target:values_add("qt.plugin_resources", table.unpack(table.wrap(plugin.resources))) + end -- TODO: add prebuilt object files in qt sdk. -- these file is located at plugins/xxx/objects-Release/xxxPlugin_init/xxxPlugin_init.cpp.o end @@ -283,6 +286,16 @@ function main(target, opt) content = content .. string.format("Q_IMPORT_PLUGIN(%s)\n", plugin) end + local plugin_resources = target:values("qt.plugin_resources") + if plugin_resources then + content = content .. "int init_qt_plugin_resources() {\n" + for _, res in ipairs(table.unique(plugin_resources)) do + content = content .. string.format(" Q_INIT_RESOURCE(%s);\n", res) + end + content = content .. " return 0;\n}\n" + content = content .. "static int s_init_qt_plugin_resources = init_qt_plugin_resources();\n" + end + local old_content = "" if os.isfile(importfile) then old_content = io.readfile(importfile) |
