#build #target #build-script #json #target-triple #env-var #triple

已弃用 构建 target_build_utils

已弃用:使用从1.14.0开始的Cargo环境变量 CARGO_CFG_TARGET_*

7个版本

使用旧的Rust 2015

0.3.1 2017年5月2日
0.3.0 2017年2月10日
0.2.1 2017年2月3日
0.2.0 2017年1月18日
0.1.1 2016年7月29日

#12 in #target-triple

Download history 14979/week @ 2024-04-09 14031/week @ 2024-04-16 13936/week @ 2024-04-23 12898/week @ 2024-04-30 10073/week @ 2024-05-07 8818/week @ 2024-05-14 8084/week @ 2024-05-21 8191/week @ 2024-05-28 7262/week @ 2024-06-04 6558/week @ 2024-06-11 6638/week @ 2024-06-18 7449/week @ 2024-06-25 8163/week @ 2024-07-02 6959/week @ 2024-07-09 6212/week @ 2024-07-16 5556/week @ 2024-07-23

每月下载 28,136
136 包中使用(直接使用3个)

ISC/Apache-2.0

31KB
518

已弃用

从1.14.0版本开始,使用Cargo设置的环境变量。

它们看起来像这样: CARGO_CFG_TARGET_OSCARGO_CFG_TARGET_ENV


Travis CI Appveyor CI

这是一个用于处理传递给build.rs脚本的TARGET环境变量的实用工具包。

与rust的#[cfg(target…)]属性不同,build.rs脚本没有提供方便的方式来检测将要构建的代码运行的系统,从而不能很好地支持交叉编译。

此包以与Rust中相应的cfg属性非常相似的方式公开了target_archtarget_vendortarget_ostarget_abi,从而允许build.rs脚本根据包的构建目标调整输出。

还支持自定义目标JSON文件。

使用target_build_utils

如果使用构建脚本(build.rs),则此包非常有用。通过以下方式将此包的依赖项添加到Cargo.toml

[package]
# ...
build = "build.rs"

[build-dependencies]
target_build_utils = "0.1"

然后按如下方式编写您的build.rs

extern crate target_build_utils;
use target_build_utils::TargetInfo;

fn main() {
    let target = TargetInfo::new().expect("could not get target info");
    if target.target_os() == "windows" {
        // conditional stuff for windows
    }
}

现在,当运行cargo build时,您的build.rs应该知道在交叉编译您的包时目标系统的属性。

许可协议

llvm_build_utils 可以选择在 ISC (MIT-like) 或 Apache (版本 2.0) 许可下分发。

依赖项

~1.5MB
~32K SLoC