#[allow(unused)]
mod build {
include!(concat!(env!("OUT_DIR"), "/built.rs"));
}
pub use self::build::{
BUILT_TIME_UTC, CFG_ENV, CFG_OS, CFG_TARGET_ARCH, CI_PLATFORM, DEBUG,
GIT_COMMIT_HASH, NUM_JOBS, PKG_LICENSE, PKG_NAME, PKG_REPOSITORY, PKG_VERSION,
RUSTC_VERSION, TARGET,
};
use once_cell::sync::Lazy;
static VERSION_INFO: Lazy<String> = Lazy::new(|| {
let mut version = format!("v{PKG_VERSION}");
if let Some(commit_hash) = *GIT_COMMIT_HASH_SHORT {
str_write!(&mut version, " [{commit_hash}]");
}
version
});
pub static VERSION: Lazy<String> = Lazy::new(|| format!("{PKG_NAME} {}", *VERSION_INFO));
pub static FULL_VERSION: Lazy<String> = Lazy::new(|| {
let mut version = format!("{}\n\nCompiled:\n", *VERSION_INFO);
str_writeln!(&mut version, "* across {NUM_JOBS} threads");
str_writeln!(&mut version, "* by {RUSTC_VERSION}");
str_writeln!(&mut version, "* for {TARGET}");
str_writeln!(&mut version, "* on {BUILT_TIME_UTC}");
version
});
pub static FULL_VERSION_WITH_NAME: Lazy<String> =
Lazy::new(|| format!("{PKG_NAME} {}", *FULL_VERSION));
pub static GIT_COMMIT_HASH_SHORT: Lazy<Option<&'static str>> =
Lazy::new(|| GIT_COMMIT_HASH.map(|s| &s[..8]));
#[test]
fn info() {
assert!(VERSION.starts_with(PKG_NAME));
assert!(VERSION.ends_with(&*VERSION_INFO));
if let Some(hash) = *GIT_COMMIT_HASH_SHORT {
assert_eq!(hash.len(), 8);
}
}