1 个不稳定版本
0.1.0-alpha.1 | 2024年7月3日 |
---|
#237 in 构建实用工具
28KB
539 行
bind-builder
Rust 构建依赖库,帮助您构建和链接本地库。
要求
cmake
必须已安装并可在系统路径中找到。git
如果您希望克隆仓库。c/
c++
构建工具。
用法
在开始之前,请确保您要构建的 cmake 项目已为要链接的库设置了安装目标。有关更多信息,请参阅 cmake 文档。
注意:正确设置安装目标是至关重要的。一些库如 zlib
将 ${CMAKE_INSTALL_PREFIX}
嵌入其中,导致生成的二进制文件放置不当。
示例
let project = CMakeBuilder::clone(
"some-repo",
"[email protected]:user/repo.git",
"tag"
)
.generator("Ninja")
.build();
let library = LocalLibrary::from(project)
.link_target("some_library")
.link_system_target("some_system_library")
.get();
cxx_build::bridge("src/bindings.rs")
.cpp(true)
.static_flag(true)
.std("c++20")
.file("src/cpp_crate.cpp")
.include(Path::new("src"))
.bind_library(library)
.compile("rust-cxx-testing");
如果您正在链接到共享库,并且为 Linux 或 MacOS 构建,则需要显式设置 @rpath
以包含二进制文件当前目录。
这可以通过向您的最终工件 build.rs
中添加以下内容来完成
#[cfg(target_os="macos")]
println!("cargo:rustc-link-arg=-Wl,-rpath,@loader_path");
#[cfg(target_os="linux")]
println!("cargo:rustc-link-arg=-Wl,-rpath,$ORIGIN");
依赖项
~250KB