#build-script #cargo-build #git #build #git-version #version #cargo

构建 grev

一个用于从构建脚本中处理git修订信息的crate

4个版本

0.1.3 2023年1月6日
0.1.2 2023年1月3日
0.1.1 2022年12月24日
0.1.0 2022年12月24日

#425构建实用工具

Download history 924/week @ 2024-04-07 660/week @ 2024-04-14 810/week @ 2024-04-21 960/week @ 2024-04-28 846/week @ 2024-05-05 90/week @ 2024-05-12 688/week @ 2024-05-19 1000/week @ 2024-05-26 549/week @ 2024-06-02 728/week @ 2024-06-09 211/week @ 2024-06-16 45/week @ 2024-06-23 73/week @ 2024-06-30 630/week @ 2024-07-07 141/week @ 2024-07-14 986/week @ 2024-07-21

每月 1,831 次下载
9 个crate中使用 (8 个直接使用)

Apache-2.0 OR MIT

16KB
225

pipeline crates.io Docs rustc

grev

一个用于从构建脚本中处理git修订信息的crate。


lib.rs:

这个库提供了一种将部分具有主观性的git修订标识符包含在Rust项目(通常是二进制文件)中的方法。它提供了一组函数,所有这些函数都旨在从构建脚本中调用,用于查询正在构建的git修订。

典型用法可能如下所示

use grev::git_revision_auto;

fn main() -> Result<()> {
  let dir = env!("CARGO_MANIFEST_DIR");
  if let Some(git_rev) = git_revision_auto(dir)? {
    println!(
      "cargo:rustc-env=VERSION={} ({})",
      env!("CARGO_PKG_VERSION"),
      git_rev
    );
  } else {
    println!("cargo:rustc-env=VERSION={}", env!("CARGO_PKG_VERSION"));
  }
  Ok(())
}

这个逻辑,位于项目根目录中的Cargo构建脚本(通常是 build.rs),将在构建程序时无条件设置环境变量 VERSION。它将包含包版本,如果有,则包含构建发生的git修订(包括表示是否有本地更改的修饰符)。如果在git标签上构建,修订字符串将包含此标签。主程序将使用 env!("VERSION") 查询版本字符串。

依赖项

~130KB