use vergen_git2::{CargoBuilder, Emitter, Git2Builder, RustcBuilder};
fn add_base_emitter_instructions(emitter: &mut Emitter) {
emitter
.add_instructions(
&CargoBuilder::all_cargo().expect("all_cargo() should build successfully"),
)
.expect("adding all_cargo() instructions should succeed")
.add_instructions(
&RustcBuilder::all_rustc().expect("all_rustc() should build successfully"),
)
.expect("adding all_rustc() instructions should succeed");
}
#[allow(clippy::print_stderr)]
fn main() {
let mut emitter = Emitter::default();
add_base_emitter_instructions(&mut emitter);
let all_git = Git2Builder::default()
.branch(true)
.commit_author_email(true)
.commit_author_name(true)
.commit_count(true)
.commit_date(true)
.commit_message(true)
.commit_timestamp(true)
.describe(false, false, None)
.sha(true)
.dirty(false)
.describe(true, true, Some("v*.*.*"))
.build()
.expect("all_git + describe + sha should build successfully");
emitter
.add_instructions(&all_git)
.expect("adding all_git + describe + sha instructions should succeed");
match emitter.fail_on_error().emit() {
Ok(_) => {}
Err(e) => {
eprintln!("git error in vergen build script: skipping git env vars: {e:?}",);
let mut emitter = Emitter::default();
add_base_emitter_instructions(&mut emitter);
emitter.emit().expect("base emit should succeed");
}
}
#[cfg(feature = "lightwalletd-grpc-tests")]
tonic_build::configure()
.build_client(true)
.build_server(false)
.message_attribute(".", "#[derive(Eq)]")
.compile_protos(
&["tests/common/lightwalletd/proto/service.proto"],
&["tests/common/lightwalletd/proto"],
)
.expect("Failed to generate lightwalletd gRPC files");
}