1 个不稳定版本

使用旧 Rust 2015

0.0.1 2022年4月29日

#15 in #pkg-config

MIT/Apache

33KB
572

另一个 pkg-config-rs

此分支存在是为了解决 静态链接问题

Build Status Rust

文档

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

您可以直接使用此 crate 进行特定库的探测,或者使用 system-depsCargo.toml 中声明所有您的 pkg-config 依赖项。

此库需要 Rust 1.30+。

示例

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

extern crate ya_pkg_config;

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

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

extern crate ya_pkg_config;

fn main() {
    ya_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

如果设置了 PKG_CONFIG_SYSROOT_DIRPKG_CONFIG,则此包将允许在交叉编译中使用 pkg-config。您可以将 PKG_CONFIG_ALLOW_CROSS=1 设置为跳过兼容性检查,但请注意,如果没有设置适当的 sysroot 和搜索路径,在交叉编译中启用 pkg-config 的使用可能会破坏构建。

一些 Rust 系统级包支持从源码构建供应商库,这可能是在 pkg-config 中缺乏交叉编译支持时的一个解决方案。

许可证

该项目受以下任一许可证的许可:

任选其一。

贡献

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

无运行时依赖