| use std::collections::hash_map::DefaultHasher; |
| use std::process::Command; |
| set_schema_version_env_var(); |
| let rev = Command::new("git") |
| .and_then(|s| String::from_utf8(s).ok()); |
| println!("cargo:rustc-env=WBG_VERSION={}", &rev[..9]); |
| fn set_schema_version_env_var() { |
| let cargo_manifest_dir = env::var("CARGO_MANIFEST_DIR").expect( |
| "The `CARGO_MANIFEST_DIR` environment variable is needed to locate the schema file", |
| let schema_file = PathBuf::from(cargo_manifest_dir).join("src/lib.rs"); |
| let schema_file = std::fs::read(schema_file).unwrap(); |
| let mut hasher = DefaultHasher::new(); |
| hasher.write(&schema_file); |
| println!("cargo:rustc-env=SCHEMA_FILE_HASH={}", hasher.finish()); |