#probe #rustc #features #autoconf

构建 feature-probe

从 build.rs 中检测 rustc 特性

2 个版本

使用旧的 Rust 2015

0.1.1 2018年6月7日
0.1.0 2018年6月7日

1150开发工具

Download history 33987/week @ 2024-03-14 32257/week @ 2024-03-21 39570/week @ 2024-03-28 75654/week @ 2024-04-04 41590/week @ 2024-04-11 38763/week @ 2024-04-18 35675/week @ 2024-04-25 33471/week @ 2024-05-02 34993/week @ 2024-05-09 32708/week @ 2024-05-16 30574/week @ 2024-05-23 37248/week @ 2024-05-30 36384/week @ 2024-06-06 37553/week @ 2024-06-13 36178/week @ 2024-06-20 28368/week @ 2024-06-27

每月下载 145,309
1,458 个 Crates 中使用(通过 bv

MIT/Apache

9KB

feature-probe-rs:从 build.rs 中检测 rustc 特性

Build Status Crates.io License: MIT License: Apache 2.0

为了支持 Rust 的多个版本,通常需要条件编译库或程序的部分。允许用户指定要启用哪些特性是可能的,但检测更好,因为用户将获得其 Rust 版本支持的所有特性。虽然我们可以检查 rustc 版本,但探测个别特性更好。这样,代码在夜间和特定特性稳定后的稳定版本上都能工作,而无需更改。

用法

它在 crates.io 上,因此您可以添加

[build-dependencies]
feature-probe = "0.1.1"

然后添加到您的 build.rs

extern crate feature_probe;

use feature_probe::Probe;

然后您可以探测诸如类型或表达式之类的特性。例如

fn main () {
    let probe = Probe::new();
    
    if probe.probe_type("i128") {
        println!("cargo:rustc-cfg=int_128");
    }
    
    if probe.probe_type("::std::ops::RangeInclusive<u64>") {
        println!("cargo:rustc-cfg=inclusive_range");
    }
}

此 crate 支持 Rust 版本 1.16.0 及更高版本。

没有运行时依赖