27 lines
949 B
Rust
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),
|
|
};
|
|
}
|