107 个版本 (稳定版)
| 9.0.0 | 2024年7月9日 |
|---|---|
| 9.0.0-beta.2 | 2024年2月3日 |
| 9.0.0-beta.1 | 2024年1月30日 |
| 8.3.2 | 2024年7月9日 |
| 0.0.6 | 2015年3月26日 |
#4 in 构建工具
563,588 每月下载量
用于 475 个crate(169个直接使用)
195KB
3.5K SLoC
vergen - 从 Cargo 构建脚本生成 cargo 指令的库套件
vergen, vergen-git2, vergen-gitcl, vergen-gix. vergen-pretty
- 将为每个启用的功能输出
cargo:rustc-env=VAR=VALUE。这些可以在您的代码中使用env!或option_env!宏进行引用。 - 如果使用启用了 git 的库之一,将输出
cargo:rerun-if-changed=.git/HEAD。这是为了确保在提交时任何 git 指令都会被重新生成。 - 如果使用启用了 git 的库之一,将输出
cargo:rerun-if-changed=.git/<path_to_ref>。这是为了确保在提交时任何 git 指令都会被重新生成。 - 如果未启用
cargo:warning功能,并且请求的变量因错误而默认或通过idempotent标志被默认设置,则可以输出cargo:warning。 - 如果
build.rs文件发生变化,则将发出cargo:rerun-if-changed=build.rs以重新运行指令输出。 - 如果
VERGEN_IDEMPOTENT环境变量已更改,则将发出cargo:rerun-if-env-changed=VERGEN_IDEMPOTENT以重新运行指令输出。 - 如果
SOURCE_DATE_EPOCH环境变量已更改,则将发出cargo:rerun-if-env-changed=SOURCE_DATE_EPOCH以重新运行指令输出。
vergen-pretty 是一个宏和用于基于 vergen 指令输出的格式化打印器。
当前版本
vergen
vergen-git2
vergen-gitcl
vergen-gix
vergen-pretty
MSRV
当前最低支持的 rust 版本是 1.73.0
⚠️ 关于版本 9 的说明 ⚠️
- 版本 9 引入了 3 个新的库,分别是
vergen-git2、vergen-gitcl和vergen-gix,这些库将独立于vergen进行版本管理。 - 这三个新库旨在成为在需要生成基于 git 的 cargo 构建脚本指令时的
vergen的替代品。 - 基于 git 的功能已从基本
vergen库中删除。 vergen现在包含build、cargo、rustc和sysinfo功能的实现。这些功能通过新库重新导出,允许您像之前一样配置输出。- 版本 9 引入的
AddCustomEntries特性。实现此特性允许您使用vergen作为引擎添加自己的自定义 Cargo 指令。有关更多信息,请参阅AddCustomEntries文档。 - 版本 8 分支 将会维持一段时间。
为什么?
这是为了解决与 Cargo 功能统一 和互斥功能相关的问题。Previous versions of vergen had 3 mutually exclusive features (git2、gitcl 和 gix)。如果您的依赖项也使用了 vergen 但配置了不同的 git 功能,则功能统一可能会导致编译问题。将 git 后端拆分为单独的库有助于缓解此问题。
从版本 8 迁移
请参阅 MIGRATING_v8_to_v9.md 中的文档。
文档
贡献
请参阅 CONTRIBUTING.md 中的文档。
许可
许可协议为以下之一
- Apache License, Version 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 协议 (LICENSE-MIT 或 https://open-source.org.cn/licenses/MIT),任选其一。
贡献
除非您明确说明,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在工作中的任何贡献,应按照上述双重许可,不得添加任何额外条款或条件。
依赖项
~1–26MB
~366K SLoC