vergen

Version

Crates.io Build
Status

NOTE: Version 1.x.x is a breaking change from the 0.1.0 series. This crate no longer generates functions to display the build time information, but rather generates constants. See below for more detail.

Basic Usage

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";

/// Semver (Lightweight) pub const SEMVER_LIGHTWEIGHT: &str = "v0.1.0-pre.0"; ```

Cargo.toml

```toml [package] build = "build.rs"

[build-dependencies] vergen = "1" ```

build.rs

```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()); } ```

lib.rs/main.rs

```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 } ```

License

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.

Contribution

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.