Configuration Summary

Contents of the Config Summary

Most catkin commands which modify a workspace’s configuration will display the standard configuration summary, as shown below:

$ cd /tmp/path/to/my_catkin_ws
$ catkin config
--------------------------------------------------------------
Profile:                     default
Extending:                   None
Workspace:                   /tmp/path/to/my_catkin_ws
Source Space:       [exists] /tmp/path/to/my_catkin_ws/src
Build Space:       [missing] /tmp/path/to/my_catkin_ws/build
Devel Space:       [missing] /tmp/path/to/my_catkin_ws/devel
Install Space:     [missing] /tmp/path/to/my_catkin_ws/install
DESTDIR:                     None
--------------------------------------------------------------
Isolate Develspaces:         False
Install Packages:            False
Isolate Installs:            False
--------------------------------------------------------------
Additional CMake Args:       None
Additional Make Args:        None
Additional catkin Make Args: None
--------------------------------------------------------------
Whitelisted Packages:        None
Blacklisted Packages:        None
--------------------------------------------------------------
Workspace configuration appears valid.
--------------------------------------------------------------

This summary describes the layout of the workspace as well as other important settings which influence build and execution behavior. Each of these options can be modified either with the config verb’s options described in the full command-line usage or by changing environment variables. The summary is composed of the following sections:

Overview Section

  • Profile – The name of this configuration

  • Extending – Describes if your current configuration will extend another Catkin workspace, and through which mechanism it determined the location of the extended workspace:

    • No Chaining

      Extending:                   None
      
    • Implicit Chaining – Derived from the CMAKE_PREFIX_PATH environment or cache variable.

      Extending:             [env] /opt/ros/hydro
      
      Extending:          [cached] /opt/ros/hydro
      
    • Explicit Chaining – Specified by catkin config --extend

      Extending:        [explicit] /opt/ros/hydro
      
  • [* Space] – Lists the paths to each of the catkin “spaces” and whether or not they exist

  • DESTDIR – An optional prefix to the install space as defined by GNU Standards

  • Isolate Develspaces – Builds products (like libraries and binaries) into individual FHS subdirectories in the devel space, instead of a single FHS directory

  • Install Packages – Enable creating and installation into the install space

  • Isolate Installs – Installs products into individual FHS subdirectories in the install space

  • Additional CMake Args – Arguments to be passed to CMake during the configuration step for all packages to be built.

  • Additional Make Args – Arguments to be passed to Make during the build step for all packages to be built.

  • Additional catkin Make Args – Similar to Additional Make Args but only applies to Catkin packages.

  • Package Whitelist – These are the packages that will be built with a bare call to catkin build

  • Package Blacklist – These are the packages that will not be built unless explicitly named

Notes Section

The summary will sometimes contain notes about the workspace or the action that you’re performing, or simply tell you that the workspace configuration appears valid.

Warnings Section

If something is wrong with your configuration such as a missing source space, an additional section will appear at the bottom of the summary with details on what is wrong and how you can fix it.

Workspace Chaining Mode

An important property listed in the configuration configuration which deserves attention is the summary value of the Extending property. This affects which other collections of libraries and packages which will be visible to your workspace. This is process called “workspace chaining.” For more details on this see the details about workspace chaining and CMAKE_PREFIX_PATH in Workspace Mechanics.

The information about which workspace to extend can come from a few different sources, and can be classified in one of three ways:

No Chaining

This is what is shown in the above example configuration and it implies that there are no other Catkin workspaces which this workspace extends. The user has neither explicitly specified a workspace to extend, and the CMAKE_PREFIX_PATH environment variable is empty:

Extending:                   None

Implicit Chaining via CMAKE_PREFIX_PATH Environment or Cache Variable

In this case, the catkin command is implicitly assuming that you want to build this workspace against resources which have been built into the directories listed in your CMAKE_PREFIX_PATH environment variable. As such, you can control this value simply by changing this environment variable.

For example, ROS users who load their system’s installed ROS environment by calling something similar to source /opt/ros/hydro/setup.bash will normally see an Extending value such as:

Extending:             [env] /opt/ros/hydro

If you don’t want to extend the given workspace, unsetting the CMAKE_PREFIX_PATH environment variable will change it back to none. You can also alternatively

Once you have built your workspace once, this CMAKE_PREFIX_PATH will be cached by the underlying CMake buildsystem. As such, the Extending status will subsequently describe this as the “cached” extension path:

Extending:          [cached] /opt/ros/hydro

Once the extension mode is cached like this, you must use catkin clean to before changing it to something else.

Explicit Chaining via catkin config --extend

This behaves like the above implicit chaining except it means that this workspace is explicitly extending another workspace and the workspaces which the other workspace extends, recursively. This can be set with the catkin config --extend command. It will override the value of CMAKE_PREFIX_PATH and persist between builds.

Extending:        [explicit] /tmp/path/to/other_ws