-
Notifications
You must be signed in to change notification settings - Fork 3
/
build.rs
27 lines (23 loc) · 819 Bytes
/
build.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use std::fs::File;
use std::io::Write;
use std::path::Path;
use std::{env, fs};
use protobuf_codegen::Customize;
fn main() {
let out_dir = env::var("OUT_DIR").unwrap();
let dest_path = Path::new(&out_dir).join("protos");
let proto_path = Path::new("./protos");
fs::create_dir_all(&dest_path).unwrap();
// Run protoc
protobuf_codegen::Codegen::new()
.pure()
.out_dir(&dest_path.to_str().unwrap())
.inputs(&[proto_path.join("sparkplug_b.proto").to_str().unwrap()])
.includes(&[proto_path.to_str().unwrap()])
.customize(Customize::default())
.run()
.expect("Protoc Error");
// Create mod.rs accordingly
let mut mod_file = File::create(dest_path.join("mod.rs")).unwrap();
writeln!(mod_file, "pub mod sparkplug_b;").unwrap();
}