Overview
This is used to protect a package dependency tree or even entire stacks. Alternatively it can be used on a preconfigured group of packages (currently only --minimal, see below).
Usage
To build and protect a list of packages/stacks and all their dependencies:
rosprotect roscpp pluginlib tf ... rosprotect --pre-clean pluginlib tf ... // clean packages before building/protecting rosprotect --pre-clean --rosdeps pluginlib tf ... // as above, but also install rosdeps if nec. rosprotect --stacks ros geometry // select stacks instead of packages
To unprotect:
rosprotect --unprotect pluginlib tf
Groups
These are preconfigured aliases for a group of packages that provide a particular functionality together.
rosprotect --comms # sufficient for clients to do ros cpp communications. rosprotect --minimal # provide a minimal, but complete working ros environment.
Under the Hood
Practically, all this does is clean, build and then flag each package with an ROS_NOBUILD marker.