Update vergen to v9 (#34283)

Vergen v9 was split into multiple different crates.
See https://github.com/rustyhorde/vergen/blob/master/MIGRATING_v8_to_v9.md
Since we used the git2 backend, we migrate to vergen-git2.
We only use `VERGEN_GIT_SHA`, so no need to enable any
of the other possible instructions.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
This commit is contained in:
Jonathan Schwender 2024-11-19 07:47:15 +01:00 committed by GitHub
parent 09684a3501
commit 0a849adfa1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 82 additions and 11 deletions

72
Cargo.lock generated
View file

@ -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]]

View file

@ -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

View file

@ -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<dyn Error>> {
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<dyn Error>> {
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