From: Eric Huss Date: Mon, 30 Apr 2018 17:17:43 +0000 (-0700) Subject: Fix "DEBUG" env var in build.rs for debug=0. X-Git-Tag: archive/raspbian/0.35.0-2+rpi1~3^2^2^2^2^2^2^2~22^2~1^2~34^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=83b8c234a1161e4b716d379ed59147b9f18de6d5;p=cargo.git Fix "DEBUG" env var in build.rs for debug=0. Fixes #5370 --- diff --git a/src/cargo/core/compiler/custom_build.rs b/src/cargo/core/compiler/custom_build.rs index ff28c0e06..59cb9b81a 100644 --- a/src/cargo/core/compiler/custom_build.rs +++ b/src/cargo/core/compiler/custom_build.rs @@ -123,6 +123,7 @@ fn build_work<'a, 'cfg>(cx: &mut Context<'a, 'cfg>, unit: &Unit<'a>) -> CargoRes // carried over. let to_exec = to_exec.into_os_string(); let mut cmd = cx.compilation.host_process(to_exec, unit.pkg)?; + let debug = unit.profile.debuginfo.unwrap_or(0) != 0; cmd.env("OUT_DIR", &build_output) .env("CARGO_MANIFEST_DIR", unit.pkg.root()) .env("NUM_JOBS", &cx.jobs().to_string()) @@ -133,7 +134,7 @@ fn build_work<'a, 'cfg>(cx: &mut Context<'a, 'cfg>, unit: &Unit<'a>) -> CargoRes Kind::Target => cx.build_config.target_triple(), }, ) - .env("DEBUG", &unit.profile.debuginfo.is_some().to_string()) + .env("DEBUG", debug.to_string()) .env("OPT_LEVEL", &unit.profile.opt_level.to_string()) .env( "PROFILE", diff --git a/tests/testsuite/build_script.rs b/tests/testsuite/build_script.rs index eb444f254..ec68f6cd6 100644 --- a/tests/testsuite/build_script.rs +++ b/tests/testsuite/build_script.rs @@ -1702,6 +1702,37 @@ fn profile_and_opt_level_set_correctly() { assert_that(build.cargo("bench"), execs().with_status(0)); } +#[test] +fn profile_debug_0() { + let p = project("foo") + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + + [profile.dev] + debug = 0 + "#, + ) + .file("src/lib.rs", "") + .file( + "build.rs", + r#" + use std::env; + + fn main() { + assert_eq!(env::var("OPT_LEVEL").unwrap(), "0"); + assert_eq!(env::var("PROFILE").unwrap(), "debug"); + assert_eq!(env::var("DEBUG").unwrap(), "false"); + } + "#, + ) + .build(); + assert_that(p.cargo("build"), execs().with_status(0)); +} + #[test] fn build_script_with_lto() { let build = project("builder")