@@ -42,7 +42,8 @@ fn main() {
42
42
cmake_config. define ( "MI_TRACK_ETW" , "ON" ) ;
43
43
}
44
44
45
- if profile == "debug" {
45
+ // it's complicated to link ucrt in debug mode on windows
46
+ if profile == "debug" && target_env != "msvc" {
46
47
cmake_config
47
48
. define ( "MI_DEBUG_FULL" , "ON" )
48
49
. define ( "MI_SHOW_ERRORS" , "ON" ) ;
@@ -82,31 +83,22 @@ fn main() {
82
83
if target_env == "msvc" {
83
84
cmake_config
84
85
. define ( "MI_USE_CXX" , "ON" )
85
- . define ( "MI_WIN_USE_FIXED_TLS" , "ON" ) ;
86
- if !std:: env:: var ( "CARGO_CFG_TARGET_FEATURE" )
87
- . map ( |s| s. contains ( "+crt-static" ) )
88
- . unwrap_or ( false )
89
- {
90
- if profile == "debug" {
91
- println ! ( "cargo:rustc-link-lib=ucrtd" ) ;
92
- } else {
93
- println ! ( "cargo:rustc-link-lib=ucrt" ) ;
94
- }
95
- }
86
+ . define ( "MI_WIN_USE_FIXED_TLS" , "ON" )
87
+ // always turn off debug full and show errors on msvc
88
+ . define ( "MI_DEBUG_FULL" , "OFF" )
89
+ . define ( "MI_SHOW_ERRORS" , "OFF" )
90
+ . profile ( "release" )
91
+ . static_crt ( true ) ;
96
92
}
97
93
98
94
let dst = cmake_config. build ( ) ;
99
95
100
96
if target_os == "windows" {
101
97
println ! (
102
- "cargo:rustc-link-search=native={}/build/{} " ,
98
+ "cargo:rustc-link-search=native={}/build/Release " ,
103
99
dst. display( ) ,
104
- if profile == "debug" {
105
- "Debug"
106
- } else {
107
- "Release"
108
- }
109
100
) ;
101
+ println ! ( "cargo:rustc-link-search=native={}/build" , dst. display( ) ) ;
110
102
} else {
111
103
println ! ( "cargo:rustc-link-search=native={}/build" , dst. display( ) ) ;
112
104
}
0 commit comments