diff --git a/crates/spirv-builder/src/lib.rs b/crates/spirv-builder/src/lib.rs index f1730baf5b..6ad9cdda6e 100644 --- a/crates/spirv-builder/src/lib.rs +++ b/crates/spirv-builder/src/lib.rs @@ -162,9 +162,14 @@ fn invoke_rustc(builder: &SpirvBuilder) -> Result { .env("RUSTFLAGS", rustflags) .output() .expect("failed to execute cargo build"); + + // `get_last_artifact` has the side-effect of printing invalid lines, so + // we do that even in case of an error, to let through any useful messages + // that ended up on stdout instead of stderr. + let stdout = String::from_utf8(build.stdout).unwrap(); + let artifact = get_last_artifact(&stdout); + if build.status.success() { - let stdout = String::from_utf8(build.stdout).unwrap(); - let artifact = get_last_artifact(&stdout); if builder.print_metadata { print_deps_of(&artifact); }