use std::env;
use std::fs;
use std::path::Path;
fn main() {
let versioned = format!(
"rust_write_formatted_msg_{}_{}_{}",
env!("CARGO_PKG_VERSION_MAJOR"),
env!("CARGO_PKG_VERSION_MINOR"),
env!("CARGO_PKG_VERSION_PATCH")
);
let mut cfg = cc::Build::new();
cfg.file("src/log.c");
cfg.define("RUST_WRITE_FORMATTED_MSG", Some(versioned.as_str()));
cfg.compile("cubeb_log_wrap");
let out_dir = env::var_os("OUT_DIR").unwrap();
let dest_path = Path::new(&out_dir).join("log_wrap.rs");
fs::write(
&dest_path,
format!(
r#"
#[allow(clippy::missing_safety_doc)]
#[no_mangle]
pub unsafe extern "C" fn {}(s: *const c_char) {{
rust_write_formatted_msg(s);
}}
"#,
versioned
),
)
.unwrap();
println!("cargo::rerun-if-changed=src/log.c");
println!("cargo::rerun-if-changed=build.rs");
}