11#[ cfg( windows) ]
22fn 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}
0 commit comments