[fix] bundle missing Slint runtime in Windows packages

This commit is contained in:
dijunkun
2026-09-27 02:52:56 +08:00
parent 94760b2a3c
commit 0b2eb5b106
4 changed files with 17 additions and 30 deletions
+4 -2
View File
@@ -90,8 +90,10 @@ installApp:
File "..\..\..\..\build\windows\x64\release\crossdesk_session_helper.exe"
File "..\..\..\..\build\windows\x64\release\crossdesk_privacy_cursor_helper.exe"
File "..\..\..\..\build\windows\x64\release\crossdesk_privacy_window.dll"
; Bundle runtime DLLs from the release output directory
File /x crossdesk_privacy_window.dll "..\..\..\..\build\windows\x64\release\*.dll"
; Require the Slint runtime so an incomplete build cannot be packaged.
File "..\..\..\..\build\windows\x64\release\slint_cpp.dll"
; Bundle the remaining runtime DLLs from the release output directory
File /x crossdesk_privacy_window.dll /x slint_cpp.dll "..\..\..\..\build\windows\x64\release\*.dll"
; Amyuni usbmmidd_v2 virtual display driver for headless hosts. xmake
; copies apps\desktop\resources\windows\usbmmidd_v2 into the release
; output directory after building crossdesk; its License.txt ships with it.
+7 -2
View File
@@ -41,6 +41,11 @@ function setup_targets()
os.cp(runtime_dll, target:targetdir())
end
-- Keep runtime deployment independent of each target's after_build callback.
rule("crossdesk.slint_runtime")
after_build(copy_slint_runtime)
rule_end()
-- Amyuni usbmmidd_v2 virtual display driver for headless Windows hosts.
-- The installer and the portable archive pick it up from the target
-- directory; the runtime looks for it next to the executables.
@@ -208,7 +213,7 @@ function setup_targets()
add_includedirs("apps/desktop/src/gui", "apps/desktop/src/gui/assets/fonts",
"apps/desktop/src/gui/assets/localization")
add_files("apps/desktop/tests/slint_ui_smoke_test.cpp")
after_build(copy_slint_runtime)
add_rules("crossdesk.slint_runtime")
target("version_checker_test")
set_kind("binary")
@@ -569,6 +574,6 @@ function setup_targets()
"apps/desktop/src/platform/linux/daemon_backend.cpp",
"apps/desktop/src/platform/linux/headless/headless_session.cpp")
end
after_build(copy_slint_runtime)
add_rules("crossdesk.slint_runtime")
after_build(copy_usbmmidd_package)
end