1
0

build.rs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. use anyhow::Result;
  2. use vergen_gitcl::{BuildBuilder, CargoBuilder, Emitter, GitclBuilder};
  3. fn main() -> Result<()> {
  4. // Manually define compile time env vars that were auto
  5. // generated by earlier versions of vergen.
  6. println!(
  7. "cargo:rustc-env=VERGEN_BUILD_SEMVER={}",
  8. env!("CARGO_PKG_VERSION")
  9. );
  10. println!(
  11. "cargo:rustc-env=VERGEN_CARGO_PROFILE={}",
  12. std::env::var("PROFILE").unwrap()
  13. );
  14. let build = BuildBuilder::all_build()?;
  15. let cargo = CargoBuilder::all_cargo()?;
  16. let mut emitter = Emitter::default();
  17. emitter.add_instructions(&build)?;
  18. emitter.add_instructions(&cargo)?;
  19. match GitclBuilder::default()
  20. .describe(true, true, None)
  21. .sha(false)
  22. .commit_timestamp(true)
  23. .branch(true)
  24. .build()
  25. {
  26. Ok(git) => {
  27. emitter.add_instructions(&git)?;
  28. }
  29. Err(e) => {
  30. println!("cargo:warning=vergen-gitcl failed, building without git info: {e}");
  31. }
  32. }
  33. emitter.emit()?;
  34. Ok(())
  35. }