1 个不稳定版本
使用旧 Rust 2015
0.0.1 | 2022年4月29日 |
---|
#15 in #pkg-config
33KB
572 行
另一个 pkg-config-rs
此分支存在是为了解决 静态链接问题。
一个简单的库,旨在作为 Cargo 包的构建依赖项使用,以便使用系统 pkg-config
工具(如果可用)来确定库的位置。
您可以直接使用此 crate 进行特定库的探测,或者使用 system-deps 在 Cargo.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
和一些其他变量(例如针对 host
和 target
平台)是有用的。
支持的变量有:PKG_CONFIG_PATH
、PKG_CONFIG_LIBDIR
和 PKG_CONFIG_SYSROOT_DIR
。
这些变量也可以提供某些前缀和后缀,按照以下优先级顺序
<var>_<target>
- 例如,PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
<var>_<target_with_underscores>
- 例如,PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
<build-kind>_<var>
- 例如,HOST_PKG_CONFIG_PATH
或TARGET_PKG_CONFIG_PATH
<var>
- 一个简单的PKG_CONFIG_PATH
如果设置了 PKG_CONFIG_SYSROOT_DIR
或 PKG_CONFIG
,则此包将允许在交叉编译中使用 pkg-config
。您可以将 PKG_CONFIG_ALLOW_CROSS=1
设置为跳过兼容性检查,但请注意,如果没有设置适当的 sysroot 和搜索路径,在交叉编译中启用 pkg-config
的使用可能会破坏构建。
一些 Rust 系统级包支持从源码构建供应商库,这可能是在 pkg-config
中缺乏交叉编译支持时的一个解决方案。
许可证
该项目受以下任一许可证的许可:
- Apache 许可证 2.0 版,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则您提交给 pkg-config-rs 的任何有意包含的贡献,根据 Apache-2.0 许可证定义,应按上述方式双重许可,不附加任何额外条款或条件。