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://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 https://opensource.org/licenses/MIT)任选其一。
贡献
除非您明确表示,否则根据Apache-2.0许可证定义的,您有意提交以包含在该作品中的任何贡献,将如上双许可,无需附加条款或条件。
依赖项
约12-42MB
~685K SLoC