The following code is optionally generated in the Cargo OUT_DIR
in version.rs
.
```rust
/// Compile Time (UTC)
pub const COMPILE_TIME: &str = "2018-08-09T15:18:02.918056182+00:00";
/// Compile Time - Short (UTC) pub const COMPILETIMESHORT: &str = "2018-08-09";
/// Commit SHA pub const SHA: &str = "75b390dc6c05a6a4aa2791cc7b3934591803bc22";
/// Commit SHA - Short pub const SHA_SHORT: &str = "75b390d";
/// Commit Date pub const COMMIT_DATE: &str = "'2018-08-08'";
/// Target Triple pub const TARGETTRIPLE: &str = "x8664-unknown-linux-gnu";
/// Semver pub const SEMVER: &str = "v0.1.0-pre.0"; ```
```toml [package] build = "build.rs"
[build-dependencies] vergen = "0.2" ```
```rust extern crate vergen;
use vergen::{vergen, ConstantsFlags, COMPILE_TIME};
fn main() { // Turn on all flags to start. let mut flags = OutputFns::all(); // Toggle the flags for the constants you don't want generated. flags.toggle(COMPILETIME); // Generate the version.rs file in the Cargo OUTDIR. assert!(vergen(flags).is_ok()); } ```
```rust include!(concat!(env!("OUT_DIR"), "/version.rs"));
// The following is an exmaple. You could use now(), sha(), and semver() however you want. fn version() -> String { format!("{} {} {}", COMPILE_TIME, SHA, SEMVER) // 2015-02-11 15:35:30.991638113-05:00 b8acdc17bbf0d9928f08b15cba6d3b659770a624 rh v0.0.1-pre-21-gb8acdc1 } ```
Licensed under either of * Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) * MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.