From ed5e05ab3e16b26148b9e2a9dd61348ea8db1c4a Mon Sep 17 00:00:00 2001 From: ruki Date: Tue, 29 Aug 2023 22:27:43 +0800 Subject: export qt app for wasm #4373 --- xmake/rules/qt/load.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua index 9d51dccbf..a94763e86 100644 --- a/xmake/rules/qt/load.lua +++ b/xmake/rules/qt/load.lua @@ -405,6 +405,10 @@ function main(target, opt) target:add("ldflags", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", "-s EXTRA_EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]", "-s ALLOW_MEMORY_GROWTH=1") target:add("shflags", "-s WASM=1", "-s FETCH=1", "-s FULL_ES2=1", "-s FULL_ES3=1", "-s USE_WEBGL2=1", "--bind") target:add("shflags", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", "-s EXTRA_EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]", "-s ALLOW_MEMORY_GROWTH=1") + -- @see https://github.com/xmake-io/xmake/issues/4137 + if qt_sdkver:ge("6.0") then + target:add("ldflags", "-s MODULARIZE=1", "-s EXPORT_NAME=createQtAppInstance") + end end -- is gui application? -- cgit v1.3.1 From 7ba4a71c8f011f8352d0ccee276fb875f7092f02 Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 31 Aug 2023 23:52:40 +0800 Subject: fix export runtime methods --- xmake/rules/qt/load.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua index a94763e86..aba5e8b0f 100644 --- a/xmake/rules/qt/load.lua +++ b/xmake/rules/qt/load.lua @@ -402,9 +402,9 @@ function main(target, opt) table.insert(target:objectfiles(), filepath) end target:add("ldflags", "-s WASM=1", "-s FETCH=1", "-s FULL_ES2=1", "-s FULL_ES3=1", "-s USE_WEBGL2=1", "--bind") - target:add("ldflags", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", "-s EXTRA_EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]", "-s ALLOW_MEMORY_GROWTH=1") + target:add("ldflags", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", "-s EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]", "-s ALLOW_MEMORY_GROWTH=1") target:add("shflags", "-s WASM=1", "-s FETCH=1", "-s FULL_ES2=1", "-s FULL_ES3=1", "-s USE_WEBGL2=1", "--bind") - target:add("shflags", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", "-s EXTRA_EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]", "-s ALLOW_MEMORY_GROWTH=1") + target:add("shflags", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", "-s EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]", "-s ALLOW_MEMORY_GROWTH=1") -- @see https://github.com/xmake-io/xmake/issues/4137 if qt_sdkver:ge("6.0") then target:add("ldflags", "-s MODULARIZE=1", "-s EXPORT_NAME=createQtAppInstance") -- cgit v1.3.1 From ef2c128996268f92e5e8701ecd272828d84a5b09 Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 31 Aug 2023 23:53:35 +0800 Subject: fix comments --- xmake/rules/qt/load.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua index aba5e8b0f..f61d9bfa2 100644 --- a/xmake/rules/qt/load.lua +++ b/xmake/rules/qt/load.lua @@ -397,7 +397,7 @@ function main(target, opt) target:add("rpathdirs", qt.libdir) target:add("linkdirs", qt.libdir) -- add prebuilt object files in qt sdk. - -- these file is located at lib/objects-Release/xxxmodule_resources_x/.rcc/xxxmodule.cpp.o + -- these files are located at lib/objects-Release/xxxmodule_resources_x/.rcc/xxxmodule.cpp.o for _, filepath in ipairs(os.files(path.join(qt.libdir, "objects-*", "*_resources_*", ".rcc", "*.o"))) do table.insert(target:objectfiles(), filepath) end -- cgit v1.3.1 From 64d3f5eb0665ca2face2cbd41f4308c97989edf7 Mon Sep 17 00:00:00 2001 From: ruki Date: Fri, 1 Sep 2023 23:31:43 +0800 Subject: improve to add frameworks resources for wasm --- xmake/rules/qt/load.lua | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua index f61d9bfa2..6aff4a2dc 100644 --- a/xmake/rules/qt/load.lua +++ b/xmake/rules/qt/load.lua @@ -254,7 +254,8 @@ function main(target, opt) -- do frameworks for qt local frameworksset = hashset.new() - for _, framework in ipairs(_get_frameworks_from_target(target)) do + local qt_frameworks = _get_frameworks_from_target(target) + for _, framework in ipairs(qt_frameworks) do -- translate qt frameworks if framework:startswith("Qt") then @@ -398,8 +399,13 @@ function main(target, opt) target:add("linkdirs", qt.libdir) -- add prebuilt object files in qt sdk. -- these files are located at lib/objects-Release/xxxmodule_resources_x/.rcc/xxxmodule.cpp.o - for _, filepath in ipairs(os.files(path.join(qt.libdir, "objects-*", "*_resources_*", ".rcc", "*.o"))) do - table.insert(target:objectfiles(), filepath) + for _, framework in ipairs(qt_frameworks) do + if framework:startswith("Qt") then + local prefix = framework:sub(3) + for _, filepath in ipairs(os.files(path.join(qt.libdir, "objects-*", prefix .. "_resources_*", ".rcc", "*.o"))) do + table.insert(target:objectfiles(), filepath) + end + end end target:add("ldflags", "-s WASM=1", "-s FETCH=1", "-s FULL_ES2=1", "-s FULL_ES3=1", "-s USE_WEBGL2=1", "--bind") target:add("ldflags", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", "-s EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]", "-s ALLOW_MEMORY_GROWTH=1") -- cgit v1.3.1 From e815f1ebcf6be884d2b45d24d0b8bf5649724ae0 Mon Sep 17 00:00:00 2001 From: ruki Date: Mon, 4 Sep 2023 23:31:32 +0800 Subject: format code --- xmake/platforms/wasm/xmake.lua | 2 +- xmake/rules/qt/load.lua | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/xmake/platforms/wasm/xmake.lua b/xmake/platforms/wasm/xmake.lua index 8e794b9e7..e9c3bc1f8 100644 --- a/xmake/platforms/wasm/xmake.lua +++ b/xmake/platforms/wasm/xmake.lua @@ -28,7 +28,7 @@ platform("wasm") set_hosts("macosx", "linux", "windows", "bsd") -- set archs - set_archs("wasm32") + set_archs("wasm32", "wasm64") -- set formats set_formats("static", "lib$(name).a") diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua index 6aff4a2dc..40128a667 100644 --- a/xmake/rules/qt/load.lua +++ b/xmake/rules/qt/load.lua @@ -408,11 +408,15 @@ function main(target, opt) end end target:add("ldflags", "-s WASM=1", "-s FETCH=1", "-s FULL_ES2=1", "-s FULL_ES3=1", "-s USE_WEBGL2=1", "--bind") - target:add("ldflags", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", "-s EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]", "-s ALLOW_MEMORY_GROWTH=1") + target:add("ldflags", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", + "-s EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]", + "-s ALLOW_MEMORY_GROWTH=1") target:add("shflags", "-s WASM=1", "-s FETCH=1", "-s FULL_ES2=1", "-s FULL_ES3=1", "-s USE_WEBGL2=1", "--bind") - target:add("shflags", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", "-s EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]", "-s ALLOW_MEMORY_GROWTH=1") - -- @see https://github.com/xmake-io/xmake/issues/4137 + target:add("shflags", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", + "-s EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]", + "-s ALLOW_MEMORY_GROWTH=1") if qt_sdkver:ge("6.0") then + -- @see https://github.com/xmake-io/xmake/issues/4137 target:add("ldflags", "-s MODULARIZE=1", "-s EXPORT_NAME=createQtAppInstance") end end -- cgit v1.3.1 From 0dd5b47259a44c4d6475850067854ba38b41848a Mon Sep 17 00:00:00 2001 From: ruki Date: Mon, 4 Sep 2023 23:36:45 +0800 Subject: fix EXPORT_NAME error for qt wasm --- xmake/rules/qt/load.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua index 40128a667..a777dcc5f 100644 --- a/xmake/rules/qt/load.lua +++ b/xmake/rules/qt/load.lua @@ -418,6 +418,7 @@ function main(target, opt) if qt_sdkver:ge("6.0") then -- @see https://github.com/xmake-io/xmake/issues/4137 target:add("ldflags", "-s MODULARIZE=1", "-s EXPORT_NAME=createQtAppInstance") + tatget:set("extension", ".js") end end -- cgit v1.3.1 From 15dd647b99d9f1cfe0dd06583672a5a1b31c0e03 Mon Sep 17 00:00:00 2001 From: ruki Date: Mon, 4 Sep 2023 23:36:54 +0800 Subject: fix typo --- xmake/rules/qt/load.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua index a777dcc5f..a67129fae 100644 --- a/xmake/rules/qt/load.lua +++ b/xmake/rules/qt/load.lua @@ -418,7 +418,7 @@ function main(target, opt) if qt_sdkver:ge("6.0") then -- @see https://github.com/xmake-io/xmake/issues/4137 target:add("ldflags", "-s MODULARIZE=1", "-s EXPORT_NAME=createQtAppInstance") - tatget:set("extension", ".js") + target:set("extension", ".js") end end -- cgit v1.3.1 From db0800a8e05367d4bd5399581802eb63267834ac Mon Sep 17 00:00:00 2001 From: 沈浪熊猫儿 Date: Thu, 7 Sep 2023 22:17:59 +0800 Subject: it works on qt6 --- xmake/rules/qt/load.lua | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua index a67129fae..a3a02e784 100644 --- a/xmake/rules/qt/load.lua +++ b/xmake/rules/qt/load.lua @@ -400,20 +400,21 @@ function main(target, opt) -- add prebuilt object files in qt sdk. -- these files are located at lib/objects-Release/xxxmodule_resources_x/.rcc/xxxmodule.cpp.o for _, framework in ipairs(qt_frameworks) do + local prefix = framework if framework:startswith("Qt") then - local prefix = framework:sub(3) - for _, filepath in ipairs(os.files(path.join(qt.libdir, "objects-*", prefix .. "_resources_*", ".rcc", "*.o"))) do - table.insert(target:objectfiles(), filepath) - end + prefix = framework:sub(3) + end + for _, filepath in ipairs(os.files(path.join(qt.libdir, "objects-*", prefix .. "_resources_*", ".rcc", "*.o"))) do + table.insert(target:objectfiles(), filepath) end end target:add("ldflags", "-s WASM=1", "-s FETCH=1", "-s FULL_ES2=1", "-s FULL_ES3=1", "-s USE_WEBGL2=1", "--bind") target:add("ldflags", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", - "-s EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]", + "-s EXPORTED_RUNTIME_METHODS=UTF16ToString,stringToUTF16,JSEvents,specialHTMLTargets", "-s ALLOW_MEMORY_GROWTH=1") target:add("shflags", "-s WASM=1", "-s FETCH=1", "-s FULL_ES2=1", "-s FULL_ES3=1", "-s USE_WEBGL2=1", "--bind") target:add("shflags", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", - "-s EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]", + "-s EXPORTED_RUNTIME_METHODS=UTF16ToString,stringToUTF16,JSEvents,specialHTMLTargets", "-s ALLOW_MEMORY_GROWTH=1") if qt_sdkver:ge("6.0") then -- @see https://github.com/xmake-io/xmake/issues/4137 -- cgit v1.3.1 From def13a51f17a268d23493980af2c05584f35b522 Mon Sep 17 00:00:00 2001 From: 沈浪熊猫儿 Date: Thu, 7 Sep 2023 22:34:22 +0800 Subject: cleaning --- xmake/rules/qt/load.lua | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua index a3a02e784..1deece6a1 100644 --- a/xmake/rules/qt/load.lua +++ b/xmake/rules/qt/load.lua @@ -408,18 +408,18 @@ function main(target, opt) table.insert(target:objectfiles(), filepath) end end - target:add("ldflags", "-s WASM=1", "-s FETCH=1", "-s FULL_ES2=1", "-s FULL_ES3=1", "-s USE_WEBGL2=1", "--bind") - target:add("ldflags", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", - "-s EXPORTED_RUNTIME_METHODS=UTF16ToString,stringToUTF16,JSEvents,specialHTMLTargets", - "-s ALLOW_MEMORY_GROWTH=1") - target:add("shflags", "-s WASM=1", "-s FETCH=1", "-s FULL_ES2=1", "-s FULL_ES3=1", "-s USE_WEBGL2=1", "--bind") - target:add("shflags", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", - "-s EXPORTED_RUNTIME_METHODS=UTF16ToString,stringToUTF16,JSEvents,specialHTMLTargets", - "-s ALLOW_MEMORY_GROWTH=1") + target:add("ldflags", "-s FETCH=1", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", "-s ALLOW_MEMORY_GROWTH=1") if qt_sdkver:ge("6.0") then -- @see https://github.com/xmake-io/xmake/issues/4137 + target:add("ldflags", "-s MAX_WEBGL_VERSION=2", "-s WASM_BIGINT=1", "-s DISABLE_EXCEPTION_CATCHING=1") + target:add("ldflags", "-sASYNCIFY_IMPORTS=qt_asyncify_suspend_js,qt_asyncify_resume_js") + target:add("ldflags", "-s EXPORTED_RUNTIME_METHODS=UTF16ToString,stringToUTF16,JSEvents,specialHTMLTargets") target:add("ldflags", "-s MODULARIZE=1", "-s EXPORT_NAME=createQtAppInstance") target:set("extension", ".js") + + else + target:add("ldflags", "-s WASM=1", "-s FULL_ES2=1", "-s FULL_ES3=1", "-s USE_WEBGL2=1", "--bind") + target:add("ldflags", "-s EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]") end end -- cgit v1.3.1 From 22a7aae6ffd31211ac25b7fb46bc3ca87d5598ab Mon Sep 17 00:00:00 2001 From: 沈浪熊猫儿 Date: Thu, 7 Sep 2023 23:02:11 +0800 Subject: final --- xmake/rules/qt/load.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua index 1deece6a1..cea533e55 100644 --- a/xmake/rules/qt/load.lua +++ b/xmake/rules/qt/load.lua @@ -408,7 +408,7 @@ function main(target, opt) table.insert(target:objectfiles(), filepath) end end - target:add("ldflags", "-s FETCH=1", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", "-s ALLOW_MEMORY_GROWTH=1") + target:add("ldflags", "-s FETCH=1", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", "-s ALLOW_MEMORY_GROWTH=1", "--bind") if qt_sdkver:ge("6.0") then -- @see https://github.com/xmake-io/xmake/issues/4137 target:add("ldflags", "-s MAX_WEBGL_VERSION=2", "-s WASM_BIGINT=1", "-s DISABLE_EXCEPTION_CATCHING=1") @@ -418,7 +418,7 @@ function main(target, opt) target:set("extension", ".js") else - target:add("ldflags", "-s WASM=1", "-s FULL_ES2=1", "-s FULL_ES3=1", "-s USE_WEBGL2=1", "--bind") + target:add("ldflags", "-s WASM=1", "-s FULL_ES2=1", "-s FULL_ES3=1", "-s USE_WEBGL2=1") target:add("ldflags", "-s EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]") end end -- cgit v1.3.1 From e119f3fc514583de50de9e83b849865b7461164d Mon Sep 17 00:00:00 2001 From: 沈浪熊猫儿 Date: Thu, 7 Sep 2023 23:03:02 +0800 Subject: shflags --- xmake/rules/qt/load.lua | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua index cea533e55..450ad2c18 100644 --- a/xmake/rules/qt/load.lua +++ b/xmake/rules/qt/load.lua @@ -409,17 +409,24 @@ function main(target, opt) end end target:add("ldflags", "-s FETCH=1", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", "-s ALLOW_MEMORY_GROWTH=1", "--bind") + target:add("shflags", "-s FETCH=1", "-s ERROR_ON_UNDEFINED_SYMBOLS=1", "-s ALLOW_MEMORY_GROWTH=1", "--bind") if qt_sdkver:ge("6.0") then -- @see https://github.com/xmake-io/xmake/issues/4137 target:add("ldflags", "-s MAX_WEBGL_VERSION=2", "-s WASM_BIGINT=1", "-s DISABLE_EXCEPTION_CATCHING=1") target:add("ldflags", "-sASYNCIFY_IMPORTS=qt_asyncify_suspend_js,qt_asyncify_resume_js") target:add("ldflags", "-s EXPORTED_RUNTIME_METHODS=UTF16ToString,stringToUTF16,JSEvents,specialHTMLTargets") target:add("ldflags", "-s MODULARIZE=1", "-s EXPORT_NAME=createQtAppInstance") + target:add("shflags", "-s MAX_WEBGL_VERSION=2", "-s WASM_BIGINT=1", "-s DISABLE_EXCEPTION_CATCHING=1") + target:add("shflags", "-sASYNCIFY_IMPORTS=qt_asyncify_suspend_js,qt_asyncify_resume_js") + target:add("shflags", "-s EXPORTED_RUNTIME_METHODS=UTF16ToString,stringToUTF16,JSEvents,specialHTMLTargets") + target:add("shflags", "-s MODULARIZE=1", "-s EXPORT_NAME=createQtAppInstance") target:set("extension", ".js") else target:add("ldflags", "-s WASM=1", "-s FULL_ES2=1", "-s FULL_ES3=1", "-s USE_WEBGL2=1") target:add("ldflags", "-s EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]") + target:add("shflags", "-s WASM=1", "-s FULL_ES2=1", "-s FULL_ES3=1", "-s USE_WEBGL2=1") + target:add("shflags", "-s EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]") end end -- cgit v1.3.1 From 5a4a6f05e2d59249eae9094b59c5cac6a9f145d8 Mon Sep 17 00:00:00 2001 From: ruki Date: Fri, 8 Sep 2023 10:13:45 +0800 Subject: Update find_qt.lua --- xmake/modules/detect/sdks/find_qt.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xmake/modules/detect/sdks/find_qt.lua b/xmake/modules/detect/sdks/find_qt.lua index f94f3556e..3700df53d 100644 --- a/xmake/modules/detect/sdks/find_qt.lua +++ b/xmake/modules/detect/sdks/find_qt.lua @@ -66,7 +66,7 @@ function _find_sdkdir(sdkdir, sdkver) end table.insert(subdirs, path.join(sdkver or "*", "android", "bin")) elseif is_plat("wasm") then - table.insert(subdirs, path.join(sdkver or "*", "wasm_32", "bin")) + table.insert(subdirs, path.join(sdkver or "*", "wasm_*", "bin")) else table.insert(subdirs, path.join(sdkver or "*", "*", "bin")) end -- cgit v1.3.1