#cargo-build #build-script #build-time #cargo-toml #system #build-dependencies #order

build pkg-config

一个库,用于在构建时运行pkg-config系统工具,以便在Cargo构建脚本中使用

43个版本

使用旧的Rust 2015

0.3.30 2024年2月14日
0.3.28 2023年12月20日
0.3.27 2023年5月3日
0.3.26 2022年10月26日
0.1.0 2014年11月27日

2 in 构建工具

Download history 1597061/week @ 2024-05-01 1573714/week @ 2024-05-08 1662917/week @ 2024-05-15 1630587/week @ 2024-05-22 1778351/week @ 2024-05-29 1797696/week @ 2024-06-05 1801650/week @ 2024-06-12 1727731/week @ 2024-06-19 1791809/week @ 2024-06-26 1625678/week @ 2024-07-03 1785185/week @ 2024-07-10 1856075/week @ 2024-07-17 1871583/week @ 2024-07-24 1892433/week @ 2024-07-31 1966543/week @ 2024-08-07 1848881/week @ 2024-08-14

7,941,103 monthly downloads
用于19,633个crate(787个直接使用)

MIT/Apache

49KB
846

pkg-config-rs

Build Status Rust

文档

一个简单的库,旨在作为Cargo包的构建依赖项使用,以便使用系统pkg-config工具(如果可用)来确定库的位置。

您可以直接使用此crate来查找特定库,或使用system-depsCargo.toml中声明所有您的pkg-config依赖项。

此库需要Rust 1.30+。

示例

查找名为foo的系统库,最低版本为1.2.3

extern crate pkg_config;

fn main() {
    pkg_config::Config::new().atleast_version("1.2.3").probe("foo").unwrap();
}

查找名为foo的系统库,没有版本要求(不推荐)

extern crate pkg_config;

fn main() {
    pkg_config::probe_library("foo").unwrap();
}

通过目标作用域环境变量进行外部配置

在交叉编译环境中,管理PKG_CONFIG_PATH和其他变量(例如,针对hosttarget平台)是很有用的。

支持的变量有:PKG_CONFIG_PATHPKG_CONFIG_LIBDIRPKG_CONFIG_SYSROOT_DIR

这些变量也可以提供某些前缀和后缀,以下为优先顺序:

  1. <var>_<target> - 例如,PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
  2. <var>_<target_with_underscores> - 例如,PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
  3. <build-kind>_<var> - 例如,HOST_PKG_CONFIG_PATHTARGET_PKG_CONFIG_PATH
  4. <var> - 纯净的 PKG_CONFIG_PATH

此 crate 允许在设置 PKG_CONFIG_SYSROOT_DIRPKG_CONFIG 的情况下,在交叉编译中使用 pkg-config。您可以通过设置 PKG_CONFIG_ALLOW_CROSS=1 来绕过兼容性检查,但请注意,在没有设置适当的 sysroot 和搜索路径的情况下启用交叉编译中使用 pkg-config 可能会导致构建失败。

一些 Rust sys crates 支持从源代码构建 vendored 库,这可能是弥补 pkg-config 中缺少交叉编译支持的解决方案。

许可证

此项目受以下任一许可证的许可

供您选择。

贡献

除非您明确声明,否则您根据 Apache-2.0 许可证定义的任何有意提交给 pkg-config-rs 的贡献,应如上所述双重许可,不附加任何额外条款或条件。

无运行时依赖