4 个版本 (1 个稳定版本)
1.0.0 | 2024年7月9日 |
---|---|
1.0.0-beta.2 | 2024年2月3日 |
1.0.0-beta.1 | 2024年1月30日 |
#451 在 构建工具
15,334 每月下载量
用于 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指令。 - 如果未启用
fail_on_error
功能,并且请求的变量通过错误或idempotent
标志默认设置,则可以发出cargo:warning
输出。 - 如果
build.rs
文件已更改,将发出cargo:rerun-if-changed=.git/<path_to_ref>
,以重新运行指令发出。 - 如果
cargo:rerun-if-env-changed=VERGEN_IDEMPOTENT
环境变量已更改,将发出cargo:rerun-if-env-changed=VERGEN_IDEMPOTENT
以重新运行指令发出。 - 如果
cargo:rerun-if-env-changed=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
进行版本控制。 - 这3个新库旨在作为当你需要生成基于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 License, Version 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 https://opensource.org/licenses/MIT) 可选。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交以包含在作品中的任何贡献,将按上述方式双许可,不附加任何额外条款或条件。
依赖项
~11–36MB
~631K SLoC