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日

#58构建工具

Download history 3295/week @ 2024-05-04 2840/week @ 2024-05-11 3255/week @ 2024-05-18 2500/week @ 2024-05-25 2330/week @ 2024-06-01 2485/week @ 2024-06-08 1258/week @ 2024-06-15 2247/week @ 2024-06-22 1772/week @ 2024-06-29 1907/week @ 2024-07-06 1863/week @ 2024-07-13 3377/week @ 2024-07-20 3232/week @ 2024-07-27 2335/week @ 2024-08-03 2111/week @ 2024-08-10 2516/week @ 2024-08-17

每月10,563次下载
8 个 包中使用

MIT/Apache

29KB
422

使用方法

首先将 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)

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

功能

build_info 包支持几个功能标志

  • 运行时功能可以通过 runtime 开启 build_info::build_info! 。该功能默认开启,但如果您只想使用 build_info::format! ,可以安全地禁用此标志。在 no_std 环境中使用 build_info 时,请禁用此功能。
  • chrono 功能开启了 chrono 包的默认功能,该包被 build_info::build_info! 使用。默认情况下是禁用的。
  • serde 功能为 build_info::build_info! 使用的类型添加了 SerializeDeserialize 支持。默认情况下是禁用的。

注意事项

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

版权和许可

本项目由其作者拥有版权,并许可使用 Apache License 2.0(http://www.apache.org/licenses/LICENSE-2.0)或 MIT 许可证(http://opensource.org/licenses/MIT),由您选择。

任选其一。

贡献

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

依赖

~7MB
~129K SLoC