#build #cargo-build #info #serialization #cargo-toml #deserialize #build-info

build build-info-common

属于 build-info 和 build-info-build 包的组成部分:此包提供了由 build-info-build 序列化并由 build-info 使用的类型

33 个版本

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 日

#366构建工具

Download history 3553/week @ 2024-05-02 2411/week @ 2024-05-09 3164/week @ 2024-05-16 3311/week @ 2024-05-23 1987/week @ 2024-05-30 2539/week @ 2024-06-06 1871/week @ 2024-06-13 1556/week @ 2024-06-20 2294/week @ 2024-06-27 2079/week @ 2024-07-04 1610/week @ 2024-07-11 2907/week @ 2024-07-18 3556/week @ 2024-07-25 2842/week @ 2024-08-01 2363/week @ 2024-08-08 1989/week @ 2024-08-15

11,368 每月下载量
11 包中使用(3 个直接使用)

MIT/Apache

15KB
196

用法

首先,将 build-info 添加为 [dependency],将 build-info-build 添加为 [build-dependency] 到您的 Cargo.toml 中。通过分离这两个包,纯编译时依赖,如 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 包支持几个特性标志

  • 运行时功能启用了 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 许可证中定义的,应按上述方式双重许可,不附加任何额外条款或条件。

依赖项

~1.4–2.2MB
~41K SLoC