crate コンパイル時に crate のバージョン文字列を得る

  • 9
    Like
  • 0
    Comment
More than 1 year has passed since last update.

Cargo はコンパイル時に環境変数 CARGO_PKG_VERSION をセットする。これを env!() マクロで取得すればよい。

fn print_help() {
    println!("myapp version {}", env!("CARGO_PKG_VERSION"));
    // => myapp version 1.2.3-beta.1
}

コンパイル時に Cargo がセットする環境変数の一覧:

環境変数                    値の一例
--------------------------------------------
CARGO_MANIFEST_DIR         /path/to/my-crate
CARGO_PKG_VERSION          1.2.3-beta.1
CARGO_PKG_VERSION_MAJOR    1
CARGO_PKG_VERSION_MINOR    2
CARGO_PKG_VERSION_PATCH    3
CARGO_PKG_VERSION_PRE      beta.1

(参考: https://github.com/rust-lang/cargo/blob/0.3.0/src/cargo/ops/cargo_rustc/compilation.rs#L110-L116