Skip to content

Commit cdbd2d4

Browse files
committed
Make libdav1d Cargo errors cleaner
1 parent 2f160f0 commit cdbd2d4

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

libdav1d-sys/build.rs

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,18 +44,36 @@ fn main() {
4444
.arg("--libdir=lib")
4545
.arg(&out_dir)
4646
.arg("vendor")
47-
.status()
48-
.expect("This crate requires meson (and ninja) to be installed: https://mesonbuild.com/");
49-
assert!(s.success(), "meson failed");
47+
.status();
48+
match s {
49+
Ok(s) => if !s.success() {
50+
println!("cargo:warning=Meson build failed. See error log for details");
51+
std::process::exit(1);
52+
}
53+
Err(err) => {
54+
println!("cargo:warning=This crate requires meson (and ninja) to be installed: https://mesonbuild.com/");
55+
println!("cargo:warning=meson: {err}");
56+
std::process::exit(2);
57+
}
58+
}
5059

5160
eprintln!("Installing dav1d into {:?}", install_dir);
5261
let s = Command::new("ninja")
5362
.env("DESTDIR", &install_dir)
5463
.current_dir(&out_dir)
5564
.arg("install")
56-
.status()
57-
.expect("This crate requires ninja to be installed: https://ninja-build.org/");
58-
assert!(s.success(), "ninja failed");
65+
.status();
66+
match s {
67+
Ok(s) => if !s.success() {
68+
println!("cargo:warning=ninja build failed. See error log for details");
69+
std::process::exit(1);
70+
}
71+
Err(err) => {
72+
println!("cargo:warning=This crate requires ninja to be installed: https://ninja-build.org/");
73+
println!("cargo:warning=ninja: {err}");
74+
std::process::exit(2);
75+
}
76+
}
5977

6078
let target_os = env::var("CARGO_CFG_TARGET_OS").unwrap();
6179
let target_env = env::var("CARGO_CFG_TARGET_ENV").unwrap();

0 commit comments

Comments
 (0)