31 个版本 (17 个稳定版)
3.2.1 | 2024年7月31日 |
---|---|
3.1.0 | 2024年2月4日 |
3.0.1 | 2023年7月29日 |
2.0.1 | 2023年6月19日 |
0.1.0 | 2020年3月21日 |
#290 在 解析器实现
203,903 每月下载量
在 59 个crate中(8 个直接) 使用
96KB
1.5K SLoC
target-spec
针对平台三元组评估 Cargo.toml
目标规范。
Cargo 支持以下平台特定的依赖项
# 1. As Rust-like `#[cfg]` syntax.
[target.'cfg(all(unix, target_arch = "x86_64"))'.dependencies]
native = { path = "native/x86_64" }
# 2. Listing out the full target triple.
[target.x86_64-pc-windows-gnu.dependencies]
winhttp = "0.4.0"
target-spec
提供了 eval
API,可以用来判断这样的依赖项是否会在特定平台上包含。
use target_spec::eval;
// Evaluate Rust-like `#[cfg]` syntax.
let cfg_target = "cfg(all(unix, target_arch = \"x86_64\"))";
assert_eq!(eval(cfg_target, "x86_64-unknown-linux-gnu").unwrap(), Some(true));
assert_eq!(eval(cfg_target, "i686-unknown-linux-gnu").unwrap(), Some(false));
assert_eq!(eval(cfg_target, "x86_64-pc-windows-msvc").unwrap(), Some(false));
// Evaluate a full target-triple.
assert_eq!(eval("x86_64-unknown-linux-gnu", "x86_64-unknown-linux-gnu").unwrap(), Some(true));
assert_eq!(eval("x86_64-unknown-linux-gnu", "x86_64-pc-windows-msvc").unwrap(), Some(false));
对于更高级的使用,请参阅 Platform
和 TargetSpec
。
可选特性
custom
:通过Platform::new_custom
添加对 自定义目标 的支持。summaries
:将summaries
模块添加到其中,以启用Platform
和TargetFeatures
的序列化。proptest1
:启用使用proptest
对Platform
和TargetFeatures
进行属性测试的支持。
最低支持的 Rust 版本
最低支持的 Rust 版本 (MSRV) 是
- 对于 target-spec 3.0.x: Rust 1.66。
- 对于 target-spec 3.1.x: Rust 1.73。
- 对于 target-spec 3.2.x: Rust 1.75。
在 3.x 系列中,MSRV 的提升将伴随着次要版本更新。
相关 crate
为了美化打印目标规范错误,建议使用miette诊断库和target-spec-miette。
贡献
有关如何帮助的说明,请参阅CONTRIBUTING文件。
许可证
该项目可在Apache 2.0许可证或MIT许可证下使用。
依赖
~0.3–1.2MB
~25K SLoC