1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
#![no_std]
//! Embed git information in your code at compile-time.
//!
//! ```
//! use git_version::git_version;
//! const GIT_VERSION: &str = git_version!();
//! ```
//!
//! The version number will have a `-modified` suffix if your git worktree had
//! untracked or changed files.
//!
//! These macros do not depend on libgit, but simply uses the `git` binary directly.
//! So you must have `git` installed somewhere in your `PATH`.
//!
//! You can also get the version information for all submodules:
//! ```
//! use git_version::git_submodule_versions;
//! const GIT_SUBMODULE_VERSIONS: &[(&str, &str)] = &git_submodule_versions!();
//!
//! for (path, version) in GIT_SUBMODULE_VERSIONS {
//! println!("{path}: {version}");
//! }
//! ```
pub use git_version_macro::{git_submodule_versions, git_version};
/// Run `git describe` at compile time with custom flags.
///
/// This is just a short-hand for `git_version!(args = [...])`,
/// to be backwards compatible with earlier versions of this crate.
#[macro_export]
macro_rules! git_describe {
($($args:tt)*) => {
$crate::git_version!(args = [$($args)*])
};
}