build.rs 825 B

12345678910111213141516171819202122232425262728293031323334
  1. use std::error::Error;
  2. use std::path::PathBuf;
  3. use built;
  4. use vergen_gitcl::{BuildBuilder, Emitter, GitclBuilder};
  5. fn main() -> Result<(), Box<dyn Error>> {
  6. // 每次编译都重新运行 `build.rs`
  7. Emitter::default()
  8. .add_instructions(&BuildBuilder::all_build()?)?
  9. .add_instructions(
  10. &GitclBuilder::default()
  11. .describe(true, false, None)
  12. .sha(false)
  13. .build()?,
  14. )?
  15. .emit()?;
  16. // `.git/index`
  17. match PathBuf::from("./.git/index").canonicalize() {
  18. Ok(p) => {
  19. println!("cargo:rerun-if-changed={}", p.to_str().unwrap());
  20. }
  21. _ => {
  22. println!("cargo:warning=can not find ./.git/index");
  23. }
  24. }
  25. // 收集编译信息
  26. built::write_built_file()?;
  27. Ok(())
  28. }