diff --git a/Cargo.lock b/Cargo.lock index a6ecdaf1fab..e97ee886403 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1369,6 +1369,7 @@ dependencies = [ "ident_case", "proc-macro2", "quote", + "strsim", "syn", ] @@ -1430,6 +1431,37 @@ dependencies = [ "serde", ] +[[package]] +name = "derive_builder" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "derive_builder_macro" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" +dependencies = [ + "derive_builder_core", + "syn", +] + [[package]] name = "derive_more" version = "0.99.18" @@ -6651,7 +6683,7 @@ dependencies = [ "tracing-perfetto", "tracing-subscriber", "url", - "vergen", + "vergen-git2", "webxr", "windows-sys 0.59.0", "winit", @@ -6927,6 +6959,12 @@ dependencies = [ "quote", ] +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "style" version = "0.0.1" @@ -7803,15 +7841,41 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "vergen" -version = "8.3.2" +version = "9.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2990d9ea5967266ea0ccf413a4aa5c42a93dbcfda9cb49a97de6931726b12566" +checksum = "349ed9e45296a581f455bc18039878f409992999bc1d5da12a6800eb18c8752f" dependencies = [ "anyhow", - "cfg-if", + "derive_builder", + "rustversion", + "time 0.3.36", + "vergen-lib", +] + +[[package]] +name = "vergen-git2" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e771aff771c0d7c2f42e434e2766d304d917e29b40f0424e8faaaa936bbc3f29" +dependencies = [ + "anyhow", + "derive_builder", "git2", "rustversion", "time 0.3.36", + "vergen", + "vergen-lib", +] + +[[package]] +name = "vergen-lib" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229eaddb0050920816cf051e619affaf18caa3dd512de8de5839ccbc8e53abb0" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", ] [[package]] diff --git a/ports/servoshell/Cargo.toml b/ports/servoshell/Cargo.toml index c207ba1762b..6685dfb5f88 100644 --- a/ports/servoshell/Cargo.toml +++ b/ports/servoshell/Cargo.toml @@ -22,7 +22,7 @@ bench = false # since build-scripts can't detect the cargo target os at build-time, we # must unconditionally add these dependencies. See https://github.com/rust-lang/cargo/issues/4932 [build-dependencies] -vergen = { version = "8.3.2", features = ["git", "git2"] } +vergen-git2 = { version = "1.0.1", features = ["build"] } # Android and OpenHarmony gl_generator = "0.14" # MacOS only diff --git a/ports/servoshell/build.rs b/ports/servoshell/build.rs index 2bce85cdefb..43f62b1d9a1 100644 --- a/ports/servoshell/build.rs +++ b/ports/servoshell/build.rs @@ -8,7 +8,7 @@ use std::io::Write; use std::path::Path; use gl_generator::{Api, Fallbacks, Profile, Registry}; -use vergen::EmitBuilder; +use vergen_git2::{Emitter, Git2Builder}; // We can make this configurable in the future if different platforms start to have // different needs. @@ -20,6 +20,17 @@ fn generate_egl_bindings(out_dir: &Path) { println!("cargo:rustc-link-lib=EGL"); } +fn emit_git_sha() -> Result<(), String> { + let git_options = Git2Builder::default() + .sha(true /* short */) + .build() + .map_err(|e| e.to_string())?; + Emitter::default() + .add_instructions(&git_options) + .and_then(|emitter| emitter.fail_on_error().emit()) + .map_err(|e| e.to_string()) +} + fn main() -> Result<(), Box> { println!("cargo::rustc-check-cfg=cfg(servo_production)"); println!("cargo::rustc-check-cfg=cfg(servo_do_not_use_in_production)"); @@ -76,11 +87,7 @@ fn main() -> Result<(), Box> { generate_egl_bindings(out); } - if let Err(error) = EmitBuilder::builder() - .fail_on_error() - .git_sha(true /* short */) - .emit() - { + if let Err(error) = emit_git_sha() { println!( "cargo:warning=Could not generate git version information: {:?}", error