当本地库不存在时,如何构建FFI crate的docs.rs文档?

3
我有一个“sys”包,它静态链接到一个库:
Cargo.toml:
[package]
links = "foo-1.0"

build.rs:

fn main() {
    println!("cargo:rustc-link-lib=dylib=foo-1.0");
}

当我发布包时,docs.rs 无法生成文档,因为未安装 libfoo:
error: failed to run custom build command for `foo-sys v0.0.1`

Caused by:
  process didn't exit successfully: `/home/cratesfyi/cratesfyi/debug/build/foo-sys-f4bd3ee95677500b/build-script-build` (exit code: 1)
--- stderr
`"pkg-config" "--libs" "--cflags" "foo-1.0 >= 1.0"` did not exit successfully: exit code: 1
--- stderr

如何配置我的Crate,使得在未安装库的情况下生成文档?
1个回答

3
有关 docs.rs 的 about/build 页面 提供了更多信息。docs.rs 将设置一个环境变量 DOCS_RS
build.rs 中可以禁用链接:
fn main() {
    if std::env::var("DOCS_RS").is_ok() {
        println!("cargo:rustc-link-lib=dylib=foo-1.0");
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接