diff --git a/build.rs b/build.rs index 254c59f..810eeb9 100644 --- a/build.rs +++ b/build.rs @@ -28,19 +28,16 @@ */ use std::{ - io::{ self, Write }, + io::{ Error, Write }, process::{ Command, exit, Stdio }, path::PathBuf, }; use bindgen::{ Builder, CargoCallbacks, MacroTypeVariation }; -fn main() -> Result<(), io::Error> { +fn main() -> Result<(), Error> { let mut header = String::new(); - /* bindgen has a dependency on clang for now */ - Command::new("clang").spawn().expect("Missing dependency: clang"); - /* Locate sysexits.h using cpp(1) */ let mut process = Command::new("cpp") .arg("-M") @@ -54,8 +51,8 @@ fn main() -> Result<(), io::Error> { let output = process.wait_with_output()?.stdout; - let headers = String::from_utf8(output).unwrap_or_else( |_| { - eprintln!("Output from cpp(1) is invalid UTF-8."); + let headers = String::from_utf8(output).unwrap_or_else( |e| { + Error::other(e.to_string()); /* Exit with status 1 because we’re bootstrapping sysexits.h, silly! */ exit(1); });