Linked Devel Space
In addition to the
isolated devel space layouts provided by
catkin_tools provides a default
linked layout which enables robust cleaning of individual packages from a workspace.
It does this by building each package into its own hidden FHS tree, and then symbolically linking all products into the unified devel space which is specified in the workspace configuration.
When building with a
linked layout, Catkin packages are built into FHS trees stored in the
.private hidden directory at the root of the devel space.
Within this directory is a directory for each package in the workspace.
Setup File Generation
merged layout, every package writes and then over-writes the colliding setup files in the root of the devel space.
This leads to race conditions and other problems when trying to parallelize building.
linked layout, however, only one package generates these files, and this is either a built-in “prebuild” package, or if it exists in the workspace, the
catkin CMake package, itself.
.catkin File Generation
When using the
catkin_tools is also responsible for managing the
.catkin file in the root of the devel space.