yggdrasil/lib/abi/build.rs

33 lines
779 B
Rust

use std::{fs, path::Path};
use abi_generator::{
abi::{ty::TypeWidth, AbiBuilder},
syntax::UnwrapFancy,
TargetEnv,
};
fn generate_abi() {
let output_dir = std::env::var("OUT_DIR").expect("$OUT_DIR not set");
let generated_types = Path::new(&output_dir).join("generated_types.rs");
let abi = AbiBuilder::from_string(
yggdrasil_abi_def::ABI_FILE,
TargetEnv {
thin_pointer_width: TypeWidth::U64,
fat_pointer_width: TypeWidth::U64,
},
)
.unwrap_fancy(yggdrasil_abi_def::ABI_FILE);
let types = prettyplease::unparse(
&abi.emit_file(true, false)
.unwrap_fancy("Could not emit types"),
);
fs::write(generated_types, types).unwrap();
}
fn main() {
generate_abi();
}