34 lines
700 B
Rust
34 lines
700 B
Rust
use lvgl_codegen::{CodeGen, Rusty};
|
|
use proc_macro2::TokenStream;
|
|
use quote::quote;
|
|
use std::fs::File;
|
|
use std::io::prelude::*;
|
|
use std::path::Path;
|
|
|
|
fn main() {
|
|
let rs = Path::new(concat!(
|
|
env!("CARGO_MANIFEST_DIR"),
|
|
"/../lvgl/src/widgets/generated.rs"
|
|
));
|
|
|
|
let codegen = CodeGen::new().unwrap();
|
|
|
|
let widgets_impl: Vec<TokenStream> = codegen
|
|
.get_widgets()
|
|
.iter()
|
|
.flat_map(|w| w.code(&()))
|
|
.collect();
|
|
|
|
let code = quote! {
|
|
#(#widgets_impl)*
|
|
};
|
|
|
|
let mut file = File::create(rs).unwrap();
|
|
writeln!(
|
|
file,
|
|
"/* automatically generated by lvgl-codegen */\n{}",
|
|
code
|
|
)
|
|
.unwrap();
|
|
}
|