1 个不稳定版本
| 0.1.0 | 2024年3月7日 | 
|---|
#279 在 构建工具
12KB
161 行
README
可以从 build.rs 中调用的辅助函数,用于从 Git 或 Mercurial 标签中提取版本号。
版本号主要遵循 Python PEP440 规范。如果当前目录对应一个版本标签,则返回该标签。否则,识别最近的标签,并返回形式为 tag.dev_N_+_hash_ 的字符串,其中 N 是标签和当前版本之间的修订次数。在两种情况下,如果当前目录已被修改,则将当前日期作为 YYYYMMDD 添加到本地版本标签中。
如果当前目录不是 Git 或 Mercurial 检出,则尝试从由 hg archive 生成的 .hg_archival.txt 文件中获取标签、距离和哈希,然后回退到 Cargo.toml 中定义的版本。由于无法检查代码是否已修改,vcs_version 将始终将日期后缀添加到 .hg_archival.txt 或 Cargo.toml 中的版本。
示例用法
将此放在您的 build.rs
use std::env;
use std::fs::File;
use std::io::Write;
use std::path::Path;
fn main()
{
   let out_dir = env::var ("OUT_DIR").unwrap();
   let mut f = File::create (Path::new (&out_dir).join ("build_info.rs")).unwrap();
   let version = vcs_version::get_version();
   writeln!(f, "pub const PKG_NAME: &'static str = \"{} {} {}\";",
            env::var ("CARGO_PKG_NAME").unwrap(),
            version,
            env::var ("PROFILE").unwrap_or ("".into()))
      .unwrap();
   writeln!(f, "pub const PKG_VERSION: &'static str = \"{}\";",
            version)
      .unwrap();
}
然后在您的 main.rs 或 lib.rs
include!(concat!(env!("OUT_DIR"), "/build_info.rs"));
这将定义两个公共字符串常量
- PKG_NAME包含包括版本号的完整包名,
- PKG_VERSION只包含版本号。
依赖项
~4–14MB
~185K SLoC