build.rs 755 B

123456789101112131415161718192021222324252627
  1. use std::{env, path::PathBuf};
  2. use vergen::{generate_cargo_keys, ConstantsFlags};
  3. const ERROR_MSG: &str = "Failed to generate metadata files";
  4. fn main() {
  5. generate_cargo_keys(ConstantsFlags::SHA_SHORT).expect(ERROR_MSG);
  6. let mut manifest_dir = PathBuf::from(
  7. env::var("CARGO_MANIFEST_DIR").expect("`CARGO_MANIFEST_DIR` is always set by cargo."),
  8. );
  9. while manifest_dir.parent().is_some() {
  10. if manifest_dir.join(".git/HEAD").exists() {
  11. println!(
  12. "cargo:rerun-if-changed={}",
  13. manifest_dir.join(".git/HEAD").display()
  14. );
  15. return;
  16. }
  17. manifest_dir.pop();
  18. }
  19. println!("cargo:warning=Could not find `.git/HEAD` from manifest dir!");
  20. }