dep: Replace vergen with vergen-gitcl (#2207)

* dep: Bump vergen to 9.0.6

Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>

* Replace vergen with vergen-gitcl

Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>

* Fix vergen-gitcl dep req

Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>

* Fix use of vergen_gitcl in build.rs

Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>

* Fix build.rs

Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>

* Fix build.rs

Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>

* Fix fmt in build.rs

Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>

* Fix fmt in build.rs

Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>

* Print out newly installed cargo-binstall version verbose in self-install.sh

Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>

---------

Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>
This commit is contained in:
Jiahao XU 2025-06-22 18:56:17 +10:00 committed by GitHub
parent f317ddf23a
commit a1ca1a46ab
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 35 additions and 15 deletions

View file

@ -49,7 +49,7 @@ zeroize = "1.8.1"
[build-dependencies] [build-dependencies]
embed-resource = "3.0.1" embed-resource = "3.0.1"
vergen = { version = "8.2.7", features = ["build", "cargo", "git", "gitcl", "rustc"] } vergen-gitcl = { version = "1.0.8", features = ["build", "cargo", "rustc"] }
[features] [features]
default = ["static", "rustls", "trust-dns", "fancy-no-backtrace", "zstd-thin", "git"] default = ["static", "rustls", "trust-dns", "fancy-no-backtrace", "zstd-thin", "git"]

View file

@ -12,6 +12,8 @@ fn succeeds(res: io::Result<Child>) -> bool {
} }
fn emit_vergen_info() { fn emit_vergen_info() {
use vergen_gitcl::*;
let git = Command::new("git").arg("--version").spawn(); let git = Command::new("git").arg("--version").spawn();
// .git is usually a dir, but it also can be a file containing // .git is usually a dir, but it also can be a file containing
@ -21,24 +23,42 @@ fn emit_vergen_info() {
// should exists. // should exists.
let is_git_repo = Path::new("../../.git").exists(); let is_git_repo = Path::new("../../.git").exists();
let mut builder = vergen::EmitBuilder::builder(); Emitter::default()
builder.all_build().all_cargo().all_rustc(); .fail_on_error()
.add_instructions(&BuildBuilder::default().build_date(true).build().unwrap())
.unwrap()
.add_instructions(&CargoBuilder::default().features(true).build().unwrap())
.unwrap()
.add_instructions(
&RustcBuilder::default()
.semver(true)
.commit_hash(true)
.llvm_version(true)
.build()
.unwrap(),
)
.unwrap()
.add_instructions(&{
let mut gitcl_builder = GitclBuilder::default();
if is_git_repo && succeeds(git) { if is_git_repo && succeeds(git) {
builder.all_git(); // sha(false) means enable the default sha output but not the short output
} else { gitcl_builder.commit_date(true).sha(false);
builder.disable_git();
} }
gitcl_builder.build().unwrap()
builder.emit().unwrap(); })
.unwrap()
.emit()
.unwrap();
} }
const RERUN_INSTRUCTIONS: &str = "cargo:rerun-if-changed=build.rs
cargo:rerun-if-changed=manifest.rc
cargo:rerun-if-changed=windows.manifest";
fn main() { fn main() {
thread::scope(|s| { thread::scope(|s| {
let handle = s.spawn(|| { let handle = s.spawn(|| {
println!("cargo:rerun-if-changed=build.rs"); println!("{RERUN_INSTRUCTIONS}");
println!("cargo:rerun-if-changed=manifest.rc");
println!("cargo:rerun-if-changed=windows.manifest");
embed_resource::compile("manifest.rc", embed_resource::NONE) embed_resource::compile("manifest.rc", embed_resource::NONE)
.manifest_required() .manifest_required()

View file

@ -10,5 +10,5 @@ export PATH="$CARGO_HOME/bin:$PATH"
"./$1" --self-install "./$1" --self-install
cargo binstall --help cargo binstall -vV
cargo install --list cargo install --list