From d4a427648e66515408c6f5db0a49d8858e986090 Mon Sep 17 00:00:00 2001 From: Antoine Gersant Date: Wed, 13 Mar 2024 18:46:35 -0700 Subject: [PATCH] Fixed startup error related to system tray integration --- Cargo.lock | 43 ++++++++++++++++++++ Cargo.toml | 1 + build.rs | 1 + res/windows/application/polaris-manifest.rc | 2 + res/windows/application/polaris.exe.manifest | 21 ++++++++++ 5 files changed, 68 insertions(+) create mode 100644 res/windows/application/polaris-manifest.rc create mode 100644 res/windows/application/polaris.exe.manifest diff --git a/Cargo.lock b/Cargo.lock index b5d09be..bb09eb5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -768,6 +768,19 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +[[package]] +name = "embed-resource" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e62abb876c07e4754fae5c14cafa77937841f01740637e17d78dc04352f32a5e" +dependencies = [ + "cc", + "rustc_version 0.4.0", + "toml 0.5.11", + "vswhom", + "winreg", +] + [[package]] name = "encoding_rs" version = "0.8.33" @@ -1544,6 +1557,7 @@ dependencies = [ "daemonize", "diesel", "diesel_migrations", + "embed-resource", "fs_extra", "futures-util", "getopts", @@ -2458,6 +2472,26 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -2674,6 +2708,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi", +] + [[package]] name = "winres" version = "0.1.12" diff --git a/Cargo.toml b/Cargo.toml index c5dfd0d..e74955f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -74,6 +74,7 @@ daemonize = "0.5" sd-notify = "0.4.1" [target.'cfg(windows)'.build-dependencies] +embed-resource = "1.8" winres = "0.1" [dev-dependencies] diff --git a/build.rs b/build.rs index dd021f4..eeebfdd 100644 --- a/build.rs +++ b/build.rs @@ -3,6 +3,7 @@ fn main() { let mut res = winres::WindowsResource::new(); res.set_icon("./res/windows/application/icon_polaris_512.ico"); res.compile().unwrap(); + embed_resource::compile("res/windows/application/polaris-manifest.rc"); } #[cfg(unix)] diff --git a/res/windows/application/polaris-manifest.rc b/res/windows/application/polaris-manifest.rc new file mode 100644 index 0000000..4ba3c87 --- /dev/null +++ b/res/windows/application/polaris-manifest.rc @@ -0,0 +1,2 @@ +#define RT_MANIFEST 24 +1 RT_MANIFEST "polaris.exe.manifest" \ No newline at end of file diff --git a/res/windows/application/polaris.exe.manifest b/res/windows/application/polaris.exe.manifest new file mode 100644 index 0000000..5bbe480 --- /dev/null +++ b/res/windows/application/polaris.exe.manifest @@ -0,0 +1,21 @@ + + + + + + + + + \ No newline at end of file