11#[ cfg( feature = "build_cc" ) ]
22fn main ( ) {
3+ let ( debug, optim_unix, optim_msvc, prof_msvc_hint) = if cfg ! ( feature = "debug" ) {
4+ ( true , "-O0" , "/O0" , "/DEBUG" )
5+ } else {
6+ ( false , "-O3" , "/O2" , "/RELEASE" )
7+ } ;
38 let mut build = cc:: Build :: new ( ) ;
49 build. include ( "snmalloc/src" ) ;
510 build. file ( "snmalloc/src/override/rust.cc" . to_string ( ) ) ;
@@ -22,7 +27,9 @@ fn main() {
2227 build. flag_if_supported ( "/Zc:wchar_t" ) ;
2328 build. flag_if_supported ( "/Zc:forScope" ) ;
2429 build. flag_if_supported ( "/Zc:inline" ) ;
25- build. flag_if_supported ( "-O3" ) ;
30+ build. flag_if_supported ( prof_msvc_hint) ;
31+ build. flag_if_supported ( optim_msvc) ;
32+ build. flag_if_supported ( optim_unix) ;
2633 build. flag_if_supported ( "-mcx16" ) ;
2734 build. flag_if_supported ( "-fno-exceptions" ) ;
2835 build. flag_if_supported ( "-fno-rtti" ) ;
@@ -31,7 +38,7 @@ fn main() {
3138 build. flag_if_supported ( "-fpermissive" ) ;
3239 build. static_crt ( true ) ;
3340 build. cpp ( true ) ;
34- build. debug ( false ) ;
41+ build. debug ( debug ) ;
3542 if cfg ! ( feature = "usecxx20" ) {
3643 build. flag_if_supported ( "-std=c++17" ) ; //original required if cxx20 not supported
3744 build. flag_if_supported ( "/std:c++17" ) ;
0 commit comments