char-rtc-obs/rtc-backend/build.rs

27 lines
949 B
Rust

use std::{env, path::PathBuf};
fn main() {
let crate_dir = env::var("CARGO_MANIFEST_DIR").unwrap();
let bindings_dir = env::var("CHAR_RTC_GENERATED_DIR").ok();
let version = env::var("CHAR_RTC_OBS_VERSION").unwrap_or_else(|_| "0.0.0".into());
// Make libobs version available
println!("cargo:rustc-env=OBS_VERSION={version}");
let config = cbindgen::Config {
language: cbindgen::Language::C,
..Default::default()
};
match cbindgen::generate_with_config(crate_dir, config) {
Ok(bindings) => {
if let Some(bindings_dir) = bindings_dir {
let bindings_dir: PathBuf = bindings_dir.into();
bindings.write_to_file(bindings_dir.join("bindings.h"));
}
}
Err(cbindgen::Error::ParseSyntaxError { .. }) => (), // ignore in favor of cargo's syntax check
Err(err) => panic!("{:?}", err),
};
}