From 64f128c45687d18d64fc6856a30fde585b007e00 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sat, 15 May 2021 14:17:30 +0200 Subject: [PATCH] support building Miri outside a git repo --- cargo-miri/bin.rs | 14 ++++++++------ cargo-miri/build.rs | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/cargo-miri/bin.rs b/cargo-miri/bin.rs index e29bdc771..84447b3a1 100644 --- a/src/tools/miri/cargo-miri/bin.rs +++ b/src/tools/miri/cargo-miri/bin.rs @@ -6,6 +6,7 @@ use std::io::{self, BufRead, BufReader, BufWriter, Read, Write}; use std::ops::Not; use std::path::{Path, PathBuf}; use std::process::Command; +use std::fmt::{Write as _}; use serde::{Deserialize, Serialize}; @@ -90,12 +91,13 @@ fn show_help() { } fn show_version() { - println!( - "miri {} ({} {})", - env!("CARGO_PKG_VERSION"), - env!("VERGEN_GIT_SHA_SHORT"), - env!("VERGEN_GIT_COMMIT_DATE") - ); + let mut version = format!("miri {}", env!("CARGO_PKG_VERSION")); + // Only use `option_env` on vergen variables to ensure the build succeeds + // when vergen failed to find the git info. + if let Some(sha) = option_env!("VERGEN_GIT_SHA_SHORT") { + write!(&mut version, " ({} {})", sha, option_env!("VERGEN_GIT_COMMIT_DATE").unwrap()).unwrap(); + } + println!("{}", version); } fn show_error(msg: String) -> ! { diff --git a/cargo-miri/build.rs b/cargo-miri/build.rs index cff135fe4..ebd8e7003 100644 --- a/src/tools/miri/cargo-miri/build.rs +++ b/src/tools/miri/cargo-miri/build.rs @@ -7,5 +7,5 @@ fn main() { let mut gen_config = vergen::Config::default(); *gen_config.git_mut().sha_kind_mut() = vergen::ShaKind::Short; *gen_config.git_mut().commit_timestamp_kind_mut() = vergen::TimestampKind::DateOnly; - vergen(gen_config).expect("Unable to generate vergen keys!"); + vergen(gen_config).ok(); // Ignore failure (in case we are built outside a git repo) }