33 lines
779 B
Rust
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();
|
|
}
|