tools/corrosion/doc/src/introduction.md
author unC0Rr
Wed, 20 Nov 2024 21:37:47 +0100
branchtransitional_engine
changeset 16067 d903f8d2395a
parent 16050 6a3dc15b78b9
permissions -rw-r--r--
- Update corrosion - Implement installation of targets imported with corrosion
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16050
6a3dc15b78b9 Add corrosion as a subdirectory, CMake fixes
unC0Rr
parents:
diff changeset
     1
## About Corrosion
6a3dc15b78b9 Add corrosion as a subdirectory, CMake fixes
unC0Rr
parents:
diff changeset
     2
6a3dc15b78b9 Add corrosion as a subdirectory, CMake fixes
unC0Rr
parents:
diff changeset
     3
Corrosion, formerly known as cmake-cargo, is a tool for integrating Rust into an existing CMake
6a3dc15b78b9 Add corrosion as a subdirectory, CMake fixes
unC0Rr
parents:
diff changeset
     4
project. Corrosion is capable of automatically importing executables, static libraries, and
6a3dc15b78b9 Add corrosion as a subdirectory, CMake fixes
unC0Rr
parents:
diff changeset
     5
dynamic libraries from a Rust package or workspace as CMake targets.
6a3dc15b78b9 Add corrosion as a subdirectory, CMake fixes
unC0Rr
parents:
diff changeset
     6
6a3dc15b78b9 Add corrosion as a subdirectory, CMake fixes
unC0Rr
parents:
diff changeset
     7
The imported static and dynamic library types can be linked into C/C++ CMake targets using the usual
6a3dc15b78b9 Add corrosion as a subdirectory, CMake fixes
unC0Rr
parents:
diff changeset
     8
CMake functions such as [`target_link_libraries()`].
6a3dc15b78b9 Add corrosion as a subdirectory, CMake fixes
unC0Rr
parents:
diff changeset
     9
For rust executables and dynamic libraries corrosion provides a `corrosion_link_libraries`
6a3dc15b78b9 Add corrosion as a subdirectory, CMake fixes
unC0Rr
parents:
diff changeset
    10
helper function to conveniently add the necessary flags to link C/C++ libraries into
6a3dc15b78b9 Add corrosion as a subdirectory, CMake fixes
unC0Rr
parents:
diff changeset
    11
the rust target.
6a3dc15b78b9 Add corrosion as a subdirectory, CMake fixes
unC0Rr
parents:
diff changeset
    12
16067
d903f8d2395a - Update corrosion
unC0Rr
parents: 16050
diff changeset
    13
## Requirements
d903f8d2395a - Update corrosion
unC0Rr
parents: 16050
diff changeset
    14
d903f8d2395a - Update corrosion
unC0Rr
parents: 16050
diff changeset
    15
- Corrosion supports CMake 3.15 and newer with the v0.5 release. If you are using the v0.5 release, please
d903f8d2395a - Update corrosion
unC0Rr
parents: 16050
diff changeset
    16
  view [the documentation here](./v0.5/introduction.md)
d903f8d2395a - Update corrosion
unC0Rr
parents: 16050
diff changeset
    17
- The master branch of Corrosion currently requires CMake 3.22 or newer.
16050
6a3dc15b78b9 Add corrosion as a subdirectory, CMake fixes
unC0Rr
parents:
diff changeset
    18
6a3dc15b78b9 Add corrosion as a subdirectory, CMake fixes
unC0Rr
parents:
diff changeset
    19
[`target_link_libraries()`]: https://cmake.org/cmake/help/latest/command/target_link_libraries.html