Browse Source

Support 'z' and 's' optimization levels

vs2017
Alex Crichton 8 years ago
parent
commit
392fab5e7b
  1. 13
      src/lib.rs

13
src/lib.rs

@ -438,8 +438,11 @@ impl Config {
if msvc { if msvc {
cmd.args.push("/nologo".into()); cmd.args.push("/nologo".into());
cmd.args.push("/MD".into()); // link against msvcrt.dll for now cmd.args.push("/MD".into()); // link against msvcrt.dll for now
if opt_level != 0 { match &opt_level[..] {
cmd.args.push("/O2".into()); "z" | "s" => cmd.args.push("/Os".into()),
"2" => cmd.args.push("/O2".into()),
"1" => cmd.args.push("/O1".into()),
_ => {}
} }
if target.contains("i686") { if target.contains("i686") {
cmd.args.push("/SAFESEH".into()); cmd.args.push("/SAFESEH".into());
@ -779,9 +782,9 @@ impl Config {
self.host.clone().unwrap_or_else(|| self.getenv_unwrap("HOST")) self.host.clone().unwrap_or_else(|| self.getenv_unwrap("HOST"))
} }
fn get_opt_level(&self) -> u32 { fn get_opt_level(&self) -> String {
self.opt_level.unwrap_or_else(|| { self.opt_level.map(|s| s.to_string()).unwrap_or_else(|| {
self.getenv_unwrap("OPT_LEVEL").parse().unwrap() self.getenv_unwrap("OPT_LEVEL")
}) })
} }

Loading…
Cancel
Save