#build-script #cargo-build #build #instructions #cargo #env-var #build-tool

build vergen

通过 'build.rs' 生成 'cargo:rustc-env' 指令,以便通过 'env!' 宏在您的代码中使用

107 个版本 (稳定版)

9.0.0 2024年7月9日
9.0.0-beta.22024年2月3日
9.0.0-beta.12024年1月30日
8.3.2 2024年7月9日
0.0.6 2015年3月26日

#4 in 构建工具

Download history 108363/week @ 2024-05-04 117924/week @ 2024-05-11 112179/week @ 2024-05-18 106092/week @ 2024-05-25 120243/week @ 2024-06-01 106372/week @ 2024-06-08 118885/week @ 2024-06-15 110468/week @ 2024-06-22 116460/week @ 2024-06-29 129152/week @ 2024-07-06 138798/week @ 2024-07-13 132966/week @ 2024-07-20 128545/week @ 2024-07-27 140425/week @ 2024-08-03 135518/week @ 2024-08-10 138468/week @ 2024-08-17

563,588 每月下载量
用于 475 个crate(169个直接使用)

MIT/Apache

195KB
3.5K SLoC

vergen - 从 Cargo 构建脚本生成 cargo 指令的库套件

vergen, vergen-git2, vergen-gitcl, vergen-gix. vergen-pretty

当与 cargo 构建脚本 结合使用时,可以输出以下 输出

vergen-pretty 是一个宏和用于基于 vergen 指令输出的格式化打印器。

当前版本

vergen

docs.rs Crates.io Crates.io Crates.io codecov CI sponsor

vergen-git2

docs.rs Crates.io Crates.io Crates.io

vergen-gitcl

docs.rs Crates.io Crates.io Crates.io

vergen-gix

docs.rs Crates.io Crates.io Crates.io

vergen-pretty

docs.rs Crates.io Crates.io Crates.io

MSRV

当前最低支持的 rust 版本是 1.73.0

⚠️ 关于版本 9 的说明 ⚠️

  • 版本 9 引入了 3 个新的库,分别是 vergen-git2vergen-gitclvergen-gix,这些库将独立于 vergen 进行版本管理。
  • 这三个新库旨在成为在需要生成基于 git 的 cargo 构建脚本指令时的 vergen 的替代品。
  • 基于 git 的功能已从基本 vergen 库中删除。
  • vergen 现在包含 buildcargorustcsysinfo 功能的实现。这些功能通过新库重新导出,允许您像之前一样配置输出。
  • 版本 9 引入的 AddCustomEntries 特性。实现此特性允许您使用 vergen 作为引擎添加自己的自定义 Cargo 指令。有关更多信息,请参阅 AddCustomEntries 文档。
  • 版本 8 分支 将会维持一段时间。

为什么?

这是为了解决与 Cargo 功能统一 和互斥功能相关的问题。Previous versions of vergen had 3 mutually exclusive features (git2gitclgix)。如果您的依赖项也使用了 vergen 但配置了不同的 git 功能,则功能统一可能会导致编译问题。将 git 后端拆分为单独的库有助于缓解此问题。

从版本 8 迁移

请参阅 MIGRATING_v8_to_v9.md 中的文档。

文档

贡献

请参阅 CONTRIBUTING.md 中的文档。

许可

许可协议为以下之一

贡献

除非您明确说明,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在工作中的任何贡献,应按照上述双重许可,不得添加任何额外条款或条件。

依赖项

~1–26MB
~366K SLoC