快速开始

你可以通过 FetchContent CMake 模块或 设置章节 中描述的其他方法之一将腐蚀(Corrosion)添加到你的项目中。之后,你可以使用 corrosion_import_crate 导入在 Cargo.toml 清单文件中定义的 Rust 目标。这将添加与 Cargo.toml 清单中定义的 crate 名称相匹配的 CMake 目标。然后,这些目标可以随后被使用,例如将导入的目标链接到常规的 C/C++ 目标中。

下面的例子展示了如何通过 FetchContent 将腐蚀(Corrosion)添加到你的项目中,以及如何导入一个 Rust 库并将其链接到一个常规的 C/C++ CMake 目标中。

  1. include(FetchContent)
  2. FetchContent_Declare(
  3. Corrosion
  4. GIT_REPOSITORY https://github.com/corrosion-rs/corrosion.git
  5. GIT_TAG v0.4 # 这里可以指定一个特定的提交哈希、版本标签或分支
  6. )
  7. # 在这行之前设置任何全局配置变量,比如 `Rust_TOOLCHAIN`
  8. FetchContent_MakeAvailable(Corrosion)
  9. # 从包或工作区清单 `Cargo.toml` 文件导入目标
  10. corrosion_import_crate(MANIFEST_PATH rust-lib/Cargo.toml)
  11. add_executable(your_cool_cpp_bin main.cpp)
  12. # 在这个例子中,假定传递给 `corrosion_import_crate` 的 `Cargo.toml` 文件定义了一个名为 "rust-lib" 的静态(`staticlib`)或共享(`cdylib`)Rust 库。
  13. # 现在在 CMake 中可用的具有相同名称的目标,你可以使用它将 Rust 库链接到你的 C/C++ CMake 目标中。
  14. target_link_libraries(your_cool_cpp_bin PUBLIC rust-lib)

请查看 使用章节 以完整讨论可能的配置选项。