4 个版本 (1 个稳定版)
| 1.0.0 | 2024年7月9日 |
|---|---|
| 1.0.0-beta.2 | 2024年2月3日 |
| 1.0.0-beta.1 | 2024年1月30日 |
#693 在 构建工具
4,490 每月下载量
在 2 crates 中使用
265KB
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标志而默认,则可以输出fail_on_error。 - 如果
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 的 cargo 指令输出的宏和美观打印器。
当前版本
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特性。实现此特性允许您包含自己的自定义 Cargo 指令,使用vergen作为生成它们的引擎。有关更多信息,请参阅AddCustomEntries文档。 - 将维护 版本 8 分支 一段时间。
为什么?
这是为了解决与 Cargo 功能统一 和互斥功能相关的问题。以前的 vergen 版本有 3 个互斥功能(git2、gitcl 和 gix)。如果包含了一个也使用了 vergen 但配置了不同 git 功能的依赖项,则功能统一可能会导致编译问题。将 git 后端拆分为单独的库有助于缓解此问题。
从版本 8 迁移
请参阅 MIGRATING_v8_to_v9.md 中的文档。
文档
贡献
请参阅 CONTRIBUTING.md 中的文档。
许可
许可协议为以下之一
- Apache许可证,版本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许可证定义的,您有意提交以包含在该作品中的任何贡献,将如上双许可,无需附加条款或条件。
依赖项
约12-42MB
~685K SLoC