equal
deleted
inserted
replaced
|
1 # Quick Start |
|
2 |
|
3 You can add corrosion to your project via the `FetchContent` CMake module or one of the other methods |
|
4 described in the [Setup chapter](setup_corrosion.md). |
|
5 Afterwards you can import Rust targets defined in a `Cargo.toml` manifest file by using |
|
6 `corrosion_import_crate`. This will add CMake targets with names matching the crate names defined |
|
7 in the Cargo.toml manifest. These targets can then subsequently be used, e.g. to link the imported |
|
8 target into a regular C/C++ target. |
|
9 |
|
10 The example below shows how to add Corrosion to your project via `FetchContent` |
|
11 and how to import a rust library and link it into a regular C/C++ CMake target. |
|
12 |
|
13 ```cmake |
|
14 include(FetchContent) |
|
15 |
|
16 FetchContent_Declare( |
|
17 Corrosion |
|
18 GIT_REPOSITORY https://github.com/corrosion-rs/corrosion.git |
|
19 GIT_TAG v0.5 # Optionally specify a commit hash, version tag or branch here |
|
20 ) |
|
21 # Set any global configuration variables such as `Rust_TOOLCHAIN` before this line! |
|
22 FetchContent_MakeAvailable(Corrosion) |
|
23 |
|
24 # Import targets defined in a package or workspace manifest `Cargo.toml` file |
|
25 corrosion_import_crate(MANIFEST_PATH rust-lib/Cargo.toml) |
|
26 |
|
27 add_executable(your_cool_cpp_bin main.cpp) |
|
28 |
|
29 # In this example the the `Cargo.toml` file passed to `corrosion_import_crate` is assumed to have |
|
30 # defined a static (`staticlib`) or shared (`cdylib`) rust library with the name "rust-lib". |
|
31 # A target with the same name is now available in CMake and you can use it to link the rust library into |
|
32 # your C/C++ CMake target(s). |
|
33 target_link_libraries(your_cool_cpp_bin PUBLIC rust-lib) |
|
34 ``` |
|
35 |
|
36 Please see the [Usage chapter](usage.md) for a complete discussion of possible configuration options. |