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://www.apache.org/licenses/LICENSE-2.0)
- MIT 协议 (LICENSE-MIT 或 https://opensource.org/licenses/MIT),任选其一。
贡献
除非您明确说明,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在工作中的任何贡献,应按照上述双重许可,不得添加任何额外条款或条件。
依赖项
~1–26MB
~366K SLoC