#build #info #build-time #consumed #compile-time #run-time #cargo

build build-info-build

提供build-info库所消耗的数据。用作构建依赖。

32个版本

0.0.38 2024年8月12日
0.0.37 2024年6月26日
0.0.36 2024年3月11日
0.0.34 2023年10月9日
0.0.19 2020年6月10日

#207 in 构建工具

Download history 3273/week @ 2024-05-02 2378/week @ 2024-05-09 3136/week @ 2024-05-16 3295/week @ 2024-05-23 1973/week @ 2024-05-30 2526/week @ 2024-06-06 1863/week @ 2024-06-13 1519/week @ 2024-06-20 2267/week @ 2024-06-27 2065/week @ 2024-07-04 1578/week @ 2024-07-11 2861/week @ 2024-07-18 3526/week @ 2024-07-25 2798/week @ 2024-08-01 2323/week @ 2024-08-08 1963/week @ 2024-08-15

11,228 每月下载次数
7 crates 中使用

MIT/Apache

41KB
713 代码行

用法

首先将 build-info 添加为 [dependency],并将 build-info-build 添加为 [build-dependency] 到您的 Cargo.toml。通过分离这两个crate,纯编译时依赖项,如 git2,不会被编译到您的最终程序中。为此要正常工作,请确保选择 解析器 "2"。

如果尚未存在,请将一个 build.rs 添加到您的项目根目录,其中调用 build_info_build::build_script()。这将收集编译时的构建信息。

然后,使用 build_info! 宏添加一个在运行时返回版本信息的函数

build_info::build_info!(fn version);

或使用 build_info::format! 在编译时生成字符串

// sample output: "{sample v0.0.13 built with rustc 1.45.0-nightly (4bd32c980 2020-05-29) at 2020-05-30 11:22:46Z}"
build_info::format!("{{{} v{} built with {} at {}}}", $.crate_info.name, $.crate_info.version, $.compiler, $.timestamp)

示例项目展示了这两种变体。

功能

build_info crate支持几个功能标志

  • 运行时功能 runtime 允许 build_info::build_info!。默认情况下是启用的,但如果您只想使用 build_info::format!,则可以安全地禁用此标志。要在一个 no_std 上下文中使用 build_info,请禁用此功能。
  • chrono 功能启用 chrono 包的默认功能,该包被 build_info::build_info! 使用。默认情况下是禁用的。
  • serde 功能为 build_info::build_info! 使用的类型添加了 Serialize/Deserialize 支持。默认情况下是禁用的。

注意事项

构建脚本会在项目或当前签出的提交更改时要求 cargo 重新运行它。如果只有依赖项更改,则不一定重新运行(build_info_build::build_script 将尝试查找锁文件并依赖于它,但它并不真正了解更复杂的功能,例如 cargo 工作区)。如果您特定的用例需要为 build.rs 启用更严格的重新运行策略,请提交一个问题,并包括一个简短的描述,说明哪些额外的文件在更改时应触发重新构建。

版权和许可

本项目的版权属于其作者,并按您的选择许可以下任一项:

任选其一。

贡献

除非您明确表示,否则根据 Apache-2.0 许可证定义的任何有意提交以包含在本项目中的贡献,均应按上述方式双重许可,不附加任何额外条款或条件。

依赖项

~6–14MB
~170K SLoC