feat(core): improve Windows installer

This commit is contained in:
Federico Terzi 2021-07-17 15:59:08 +02:00
parent 08efac57d7
commit 17e59c8edf
2 changed files with 129 additions and 5 deletions

131
Cargo.lock generated
View File

@ -215,6 +215,12 @@ dependencies = [
"winapi 0.3.9", "winapi 0.3.9",
] ]
[[package]]
name = "const-sha1"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb58b6451e8c2a812ad979ed1d83378caa5e927eef2622017a45f251457c2c9d"
[[package]] [[package]]
name = "const_fn" name = "const_fn"
version = "0.4.5" version = "0.4.5"
@ -714,6 +720,7 @@ version = "0.1.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"cc", "cc",
"lazy_static",
"lazycell", "lazycell",
"log", "log",
"notify-rust", "notify-rust",
@ -721,6 +728,7 @@ dependencies = [
"serde_json", "serde_json",
"thiserror", "thiserror",
"widestring", "widestring",
"winrt-notification 0.3.1",
] ]
[[package]] [[package]]
@ -1258,7 +1266,7 @@ checksum = "95a3a5dd7b4b415b112ce0fae1988f3e6dee90a96918bf3950b5f2289b19a04b"
dependencies = [ dependencies = [
"dbus", "dbus",
"mac-notification-sys", "mac-notification-sys",
"winrt-notification", "winrt-notification 0.2.2",
] ]
[[package]] [[package]]
@ -1745,6 +1753,12 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527" checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527"
[[package]]
name = "squote"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fccf17fd09e2455ea796d2ad267b64fa2c5cbd8701b2a93b555d2aa73449f7d"
[[package]] [[package]]
name = "string_cache" name = "string_cache"
version = "0.8.1" version = "0.8.1"
@ -1782,6 +1796,15 @@ version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ca6e4730f517e041e547ffe23d29daab8de6b73af4b6ae2a002108169f5e7da" checksum = "4ca6e4730f517e041e547ffe23d29daab8de6b73af4b6ae2a002108169f5e7da"
[[package]]
name = "strum"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c"
dependencies = [
"strum_macros 0.20.1",
]
[[package]] [[package]]
name = "strum_macros" name = "strum_macros"
version = "0.8.0" version = "0.8.0"
@ -1792,6 +1815,18 @@ dependencies = [
"syn 0.11.11", "syn 0.11.11",
] ]
[[package]]
name = "strum_macros"
version = "0.20.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149"
dependencies = [
"heck",
"proc-macro2",
"quote 1.0.9",
"syn 1.0.67",
]
[[package]] [[package]]
name = "syn" name = "syn"
version = "0.11.11" version = "0.11.11"
@ -2077,6 +2112,77 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "426842497696b65fbfc575691d94ef65befb248ed1a8c4361e293c724e7ebe61"
dependencies = [
"const-sha1",
"windows_gen",
"windows_macros",
"windows_winmd",
]
[[package]]
name = "windows_gen"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77ac8f0f06b647f42ee5459a8e1ffe41795647582c5926ec3fa363a91aad7d77"
dependencies = [
"proc-macro2",
"quote 1.0.9",
"squote",
"syn 1.0.67",
"windows_gen_macros",
"windows_winmd",
]
[[package]]
name = "windows_gen_macros"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23eac2169a20173b890c496f9e0e1149a92ef29fe4ba96026b72eec363b993f9"
dependencies = [
"proc-macro2",
"quote 1.0.9",
"syn 1.0.67",
]
[[package]]
name = "windows_macros"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9edc57c944eec106c7823b425ab0fd9f90163489e50a4df747f65fcf9030e1fb"
dependencies = [
"proc-macro2",
"quote 1.0.9",
"squote",
"syn 1.0.67",
"windows_gen",
"windows_winmd",
]
[[package]]
name = "windows_winmd"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16d44527d04c9713312ed598f5d6ce3c453754dbfc03ddc376615be4415ffc88"
dependencies = [
"windows_winmd_macros",
]
[[package]]
name = "windows_winmd_macros"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2353f43f512938450614a176abf2b6cb31ac3b84fd71c88470fee571303e3f36"
dependencies = [
"proc-macro2",
"quote 1.0.9",
"syn 1.0.67",
]
[[package]] [[package]]
name = "winreg" name = "winreg"
version = "0.9.0" version = "0.9.0"
@ -2110,11 +2216,22 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c31a65da50d792c6f9bd2e3216249566c4fb1d2d34f9b7d2d66d2e93f62a242" checksum = "6c31a65da50d792c6f9bd2e3216249566c4fb1d2d34f9b7d2d66d2e93f62a242"
dependencies = [ dependencies = [
"strum", "strum 0.8.0",
"strum_macros", "strum_macros 0.8.0",
"winapi 0.3.9", "winapi 0.3.9",
"winrt", "winrt",
"xml-rs", "xml-rs 0.6.1",
]
[[package]]
name = "winrt-notification"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5ee9845acda665033013f93baec4f71ac0e60a391b530a5a83bdb966c1807ca"
dependencies = [
"strum 0.20.0",
"windows",
"xml-rs 0.8.3",
] ]
[[package]] [[package]]
@ -2136,6 +2253,12 @@ dependencies = [
"bitflags 0.9.1", "bitflags 0.9.1",
] ]
[[package]]
name = "xml-rs"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a"
[[package]] [[package]]
name = "xml5ever" name = "xml5ever"
version = "0.16.1" version = "0.16.1"

View File

@ -6,6 +6,7 @@
#define MyAppPublisher "Federico Terzi" #define MyAppPublisher "Federico Terzi"
#define MyAppURL "{{{app_url}}}" #define MyAppURL "{{{app_url}}}"
#define MyAppExeName "espansod.exe" #define MyAppExeName "espansod.exe"
#define MyAppUserModelID "{{5E3B6C0F-1A4D-45C4-8872-D8174702101A}"
[Setup] [Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications. ; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
@ -43,7 +44,7 @@ Source: "{{{cli_helper}}}"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons] [Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Parameters: "launcher"; IconFilename: "{app}\icon.ico"; Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Parameters: "launcher"; AppUserModelID: "{#MyAppUserModelID}"; IconFilename: "{app}\icon.ico";
;Name: "{userstartup}\espanso"; Filename: "{app}\espansod.exe"; Parameters: "launcher"; Tasks:StartMenuEntry; ;Name: "{userstartup}\espanso"; Filename: "{app}\espansod.exe"; Parameters: "launcher"; Tasks:StartMenuEntry;
;[Tasks] ;[Tasks]