Supported Build Types¶
The current release of catkin_tools supports building two types of packages:
- Catkin – CMake packages that use the Catkin CMake macros
- CMake – “Plain” CMake packages
There is currently limited support for adding other build types. For information on extending catkin_tools to be able to build other types of packages, see Adding New Build Types. Below are details on the stages involved in building a given package for each of the currently-supported build types.
Catkin¶
Catkin packages are CMake packages which utilize the Catkin CMake macros for finding packages and defining configuration files.
Configuration Arguments¶
- --cmake-args
- --make-args
- --catkin-make-args
Build Stages¶
First | Subsequent | Description |
---|---|---|
mkdir | Create package build space if it doesn’t exist.
|
|
cmake | check | Run CMake configure step once for the
first build and the cmake_check_build_system
target for subsequent builds unless the
--force-cmake argument is given.
|
preclean optional | Run the clean target before building.
This is only done with the --pre-clean option.
|
|
make | Build the default target with GNU make.
|
|
install optional | Run the install target after building.
This is only done with the --install option.
|
|
setupgen | Generate a setup.sh file to “source” the
result space.
|
|
envgen | Generate an env.sh file for loading the
result space’s environment.
|
CMake¶
Configuration Arguments¶
- --cmake-args
- --make-args
Build Stages¶
First | Subsequent | Description |
---|---|---|
mkdir | Create package build space if it doesn’t exist.
|
|
cmake | check | Run CMake configure step once for the
first build and the cmake_check_build_system
target for subsequent builds unless the
--force-cmake argument is given.
|
preclean optional | Run the clean target before building.
This is only done with the --pre-clean option.
|
|
make | Build the default target with GNU make.
|
|
install | Run the install target after building,
and install products to the devel space.
If the --install option is given,
products are installed to the install space instead.
|
|
setupgen | Generate a setup.sh file if necessary.
|