File tree 2 files changed +52
-0
lines changed
2 files changed +52
-0
lines changed Original file line number Diff line number Diff line change
1
+ <?xml version =" 1.0" encoding =" UTF-8" standalone =" yes" ?>
2
+ <!--
3
+ This is a Windows application manifest file.
4
+ See: https://docs.microsoft.com/en-us/windows/win32/sbscs/application-manifests
5
+ -->
6
+ <assembly xmlns =" urn:schemas-microsoft-com:asm.v1" manifestVersion =" 1.0" xmlns : asmv3 =" urn:schemas-microsoft-com:asm.v3" >
7
+ <!-- Versions rustc supports as compiler hosts -->
8
+ <compatibility xmlns =" urn:schemas-microsoft-com:compatibility.v1" >
9
+ <application >
10
+ <!-- Windows 7 --> <supportedOS Id =" {35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
11
+ <!-- Windows 8 --> <supportedOS Id =" {4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
12
+ <!-- Windows 8.1 --> <supportedOS Id =" {1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
13
+ <!-- Windows 10 and 11 --> <supportedOS Id =" {8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
14
+ </application >
15
+ </compatibility >
16
+ <!-- Use UTF-8 code page -->
17
+ <asmv3 : application >
18
+ <asmv3 : windowsSettings xmlns =" http://schemas.microsoft.com/SMI/2019/WindowsSettings" >
19
+ <activeCodePage >UTF-8</activeCodePage >
20
+ </asmv3 : windowsSettings >
21
+ </asmv3 : application >
22
+ <!-- Remove (most) legacy path limits -->
23
+ <asmv3 : application >
24
+ <asmv3 : windowsSettings xmlns : ws2 =" http://schemas.microsoft.com/SMI/2016/WindowsSettings" >
25
+ <ws2 : longPathAware >true</ws2 : longPathAware >
26
+ </asmv3 : windowsSettings >
27
+ </asmv3 : application >
28
+ </assembly >
Original file line number Diff line number Diff line change
1
+ use std:: env;
2
+
3
+ fn main ( ) {
4
+ let target_os = env:: var ( "CARGO_CFG_TARGET_OS" ) ;
5
+ let target_env = env:: var ( "CARGO_CFG_TARGET_ENV" ) ;
6
+ if Ok ( "windows" ) == target_os. as_deref ( ) && Ok ( "msvc" ) == target_env. as_deref ( ) {
7
+ set_windows_exe_options ( ) ;
8
+ }
9
+ }
10
+
11
+ // Add a manifest file to rustc.exe.
12
+ fn set_windows_exe_options ( ) {
13
+ static WINDOWS_MANIFEST_FILE : & str = "Windows Manifest.xml" ;
14
+
15
+ let mut manifest = env:: current_dir ( ) . unwrap ( ) ;
16
+ manifest. push ( WINDOWS_MANIFEST_FILE ) ;
17
+
18
+ println ! ( "cargo:rerun-if-changed={}" , WINDOWS_MANIFEST_FILE ) ;
19
+ // Embed the Windows application manifest file.
20
+ println ! ( "cargo:rustc-link-arg-bin=rustc-main=/MANIFEST:EMBED" ) ;
21
+ println ! ( "cargo:rustc-link-arg-bin=rustc-main=/MANIFESTINPUT:{}" , manifest. to_str( ) . unwrap( ) ) ;
22
+ // Turn linker warnings into errors.
23
+ println ! ( "cargo:rustc-link-arg-bin=rustc-main=/WX" ) ;
24
+ }
You can’t perform that action at this time.
0 commit comments