快速开始
你可以通过 FetchContent
CMake 模块或 设置章节 中描述的其他方法之一将腐蚀(Corrosion)添加到你的项目中。之后,你可以使用 corrosion_import_crate
导入在 Cargo.toml
清单文件中定义的 Rust 目标。这将添加与 Cargo.toml 清单中定义的 crate 名称相匹配的 CMake 目标。然后,这些目标可以随后被使用,例如将导入的目标链接到常规的 C/C++ 目标中。
下面的例子展示了如何通过 FetchContent
将腐蚀(Corrosion)添加到你的项目中,以及如何导入一个 Rust 库并将其链接到一个常规的 C/C++ CMake 目标中。
include(FetchContent)
FetchContent_Declare(
Corrosion
GIT_REPOSITORY https://github.com/corrosion-rs/corrosion.git
GIT_TAG v0.4 # 这里可以指定一个特定的提交哈希、版本标签或分支
)
# 在这行之前设置任何全局配置变量,比如 `Rust_TOOLCHAIN`
FetchContent_MakeAvailable(Corrosion)
# 从包或工作区清单 `Cargo.toml` 文件导入目标
corrosion_import_crate(MANIFEST_PATH rust-lib/Cargo.toml)
add_executable(your_cool_cpp_bin main.cpp)
# 在这个例子中,假定传递给 `corrosion_import_crate` 的 `Cargo.toml` 文件定义了一个名为 "rust-lib" 的静态(`staticlib`)或共享(`cdylib`)Rust 库。
# 现在在 CMake 中可用的具有相同名称的目标,你可以使用它将 Rust 库链接到你的 C/C++ CMake 目标中。
target_link_libraries(your_cool_cpp_bin PUBLIC rust-lib)
请查看 使用章节 以完整讨论可能的配置选项。