Skip to content

Commit f96f56d

Browse files
committed
feat: icon for windows
1 parent 71df927 commit f96f56d

5 files changed

Lines changed: 37 additions & 15 deletions

File tree

Cargo.lock

Lines changed: 20 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/plumeimpactor/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@ keyring = { version = "3.6.3", default-features = false, features = ["windows-na
2424

2525
[target.'cfg(target_os = "windows")'.build-dependencies]
2626
embed-manifest = "1.4"
27+
winres = "0.1"

apps/plumeimpactor/build.rs

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
#[cfg(windows)]
22
fn main() {
33
println!("cargo:rerun-if-changed=build.rs");
4-
let target = std::env::var("TARGET").unwrap_or_default();
54

6-
if target.contains("windows") {
7-
let pkg_name = std::env::var("CARGO_PKG_NAME").unwrap();
8-
embed_windows_manifest(&pkg_name);
9-
}
5+
let pkg_name = std::env::var("CARGO_PKG_NAME").unwrap();
6+
embed_windows_manifest(&pkg_name);
107
}
118

129
#[cfg(not(windows))]
@@ -17,15 +14,20 @@ fn embed_windows_manifest(name: &str) {
1714
use embed_manifest::manifest::{ActiveCodePage, Setting, SupportedOS::*};
1815
use embed_manifest::{embed_manifest, new_manifest};
1916

20-
let manifest = new_manifest(name)
21-
.supported_os(Windows7..=Windows10)
22-
.active_code_page(ActiveCodePage::Utf8)
23-
.heap_type(embed_manifest::manifest::HeapType::SegmentHeap)
24-
.dpi_awareness(embed_manifest::manifest::DpiAwareness::PerMonitorV2)
25-
.long_path_aware(Setting::Enabled);
17+
{
18+
let manifest = new_manifest(name)
19+
.supported_os(Windows7..=Windows10)
20+
.active_code_page(ActiveCodePage::Utf8)
21+
.heap_type(embed_manifest::manifest::HeapType::SegmentHeap)
22+
.dpi_awareness(embed_manifest::manifest::DpiAwareness::PerMonitorV2)
23+
.long_path_aware(Setting::Enabled);
24+
25+
embed_manifest(manifest).unwrap();
26+
}
2627

27-
if let Err(e) = embed_manifest(manifest) {
28-
println!("cargo:warning=Failed to embed manifest: {e}");
29-
println!("cargo:warning=The application will still work but may lack optimal Windows theming");
28+
{
29+
let mut res = winres::WindowsResource::new();
30+
res.set_icon("../../package/windows/icon.ico");
31+
res.compile().unwrap();
3032
}
3133
}

package/windows/.keep

Whitespace-only changes.

package/windows/icon.ico

113 KB
Binary file not shown.

0 commit comments

Comments
 (0)