53 lines
1.2 KiB
Rust
53 lines
1.2 KiB
Rust
use std::process::Command;
|
|
|
|
fn js_protos() {
|
|
let output = Command::new("npm")
|
|
.arg("run")
|
|
.arg("build:protobuf")
|
|
.output()
|
|
.unwrap();
|
|
|
|
if output.status.success() {
|
|
return;
|
|
} else {
|
|
let err = String::from_utf8(output.stderr).unwrap();
|
|
panic!("JS Protobuf build failure:\n {}", err);
|
|
}
|
|
}
|
|
|
|
fn webpack() {
|
|
let output = Command::new("npm")
|
|
.arg("run")
|
|
.arg("build:webpack")
|
|
.output()
|
|
.unwrap();
|
|
|
|
if output.status.success() {
|
|
return;
|
|
} else {
|
|
let err = String::from_utf8(output.stderr).unwrap();
|
|
panic!("Webpack build failure:\n {}", err);
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
println!("cargo:rerun-if-changed=static/scripts/webpack.config.js");
|
|
js_protos();
|
|
webpack();
|
|
|
|
let mut config = prost_build::Config::new();
|
|
config.btree_map(&["."]);
|
|
config.type_attribute(".", "#[derive(Serialize)]");
|
|
config.type_attribute(".", "#[serde(rename_all = \"camelCase\")]");
|
|
|
|
tonic_build::configure()
|
|
.build_server(false)
|
|
.build_client(false)
|
|
.compile_with_config(
|
|
config,
|
|
&["proto/cofd.proto", "proto/cofd_api.proto"],
|
|
&["src/", "proto/"],
|
|
)
|
|
.unwrap();
|
|
}
|