2个版本
0.1.1 | 2024年2月15日 |
---|---|
0.1.0 | 2023年10月13日 |
#211 in 构建工具
19KB
262 行
conan2-rs
简介
conan2-rs
是Conan C/C++包管理器(仅适用于2.0版本)的Cargo构建脚本的包装器。
它自动从Conan依赖中提取C/C++库链接标志,并将它们传递给 rustc
。
使用Conan添加C/C++依赖项
使用Conan将C/C++依赖项添加到Rust项目的最简单方法是添加一个普通的 conanfile.txt
文件,如下所示
[requires]
libxml2/2.11.4
openssl/3.1.3
zlib/1.3
示例用法
将 conan2
添加到 Cargo.toml
构建依赖项部分
[build-dependencies]
conan2 = "0.1"
将以下行添加到项目的 build.rs
脚本中,以调用 conan install
并自动将Conan依赖信息传递给Cargo
use conan2::ConanInstall;
fn main() {
ConanInstall::new().run().parse().emit();
}
最常用的 build_type
Conan设置将根据当前的Cargo构建配置(调试或发布)自动定义。
假设Conan可执行文件名为 conan
,除非设置了 CONAN
环境变量以覆盖。
在项目仓库中还可以找到使用 conan2-rs
链接Conan依赖项的Rust crate的示例。
高级用法
使用从Cargo目标信息派生的自定义Conan配置文件名称
use conan2::ConanInstall;
fn main() {
let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap();
let target_arch = std::env::var("CARGO_CFG_TARGET_ARCH").unwrap();
let conan_profile = format!("{}-{}", target_os, target_arch);
ConanInstall::new()
.profile(&conan_profile)
.build("missing")
.run()
.parse()
.emit();
}
从Conan依赖中获取C/C++包含路径
要使用包含路径列表,请在解析 conan install
输出后执行以下操作
use conan2::ConanInstall;
let metadata = ConanInstall::new().run().parse();
for path in metadata.include_paths() {
// Add "-I{path}" to CXXFLAGS or something.
}
metadata.emit();
依赖项
~355–760KB
~17K SLoC