【发布时间】:2019-02-21 02:12:00
【问题描述】:
我正在构建一个 Rust 板条箱,它对一些包装原生库的 *-sys 板条箱具有传递依赖。 *-sys crates 使用 build.rs 用 cmake 构建本机库,我的环境不支持。
我已经在我的项目树的其他地方预构建了这些本地库。我想override the build scripts 不运行,而是使用现有的本机库。
如果清单包含链接键,则 Cargo 支持覆盖使用自定义库指定的构建脚本。此功能的目的是防止完全运行有问题的构建脚本,而是提前提供元数据。
要覆盖构建脚本,请将以下配置放在任何可接受的 Cargo 配置位置。
[target.x86_64-unknown-linux-gnu.foo] rustc-link-search = ["/path/to/foo"] rustc-link-lib = ["foo"] root = "/path/to/foo" key = "value"
来源:Cargo Reference > Build Scripts
根据该文档,我最初的猜测是我只需要在声明依赖项时添加rustc-link-lib,但这似乎不起作用。
[package]
# ...
[dependencies]
# ...
harfbuzz-sys = { version = "0.3", rustc-link-lib = ["harfbuzz"] }
# ...
Cargo 仍然尝试调用 build.rs 并失败。
对于我的项目中的所有传递依赖项,是否有正确的方法来覆盖 harfbuzz-sys 的 build.rs?
【问题讨论】:
标签: rust rust-cargo