Skip to content
A common repository for CMake Modules which are not distributed with CMake but are commonly used by ROS packages.
Branch: 0.4-devel
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


A common repository for CMake Modules which are not distributed with CMake but are commonly used by ROS packages.

See the file in this repository before submitting pull requests for new modules.

ROS Distros

This repository has branches for minor releases (0.2-devel, 0.3-devel, 0.4-devel, etc...) and they map to specific ROS distributions like so:

  • 0.2-devel:
    • ROS Groovy
  • 0.3-devel:
    • ROS Hydro
    • ROS Indigo
  • 0.4-devel:
    • ROS Jade
    • ROS Kinetic
    • ROS Lunar
    • ROS Melodic

This mapping will be kept up-to-date in the on the default branch.

In the future, new minor releases will increment by the number of ROS distros that are skipped. For example, if a custom branch is needed for ROS Lunar, then it will be 0.6-devel and not 0.5-devel, so that 0.5-devel maybe used by Kinetic in the future if necessary.

Provided Modules

  1. NumPy is the fundamental package for scientific computing with Python.
  2. TBB lets you easily write parallel C++ programs that take full advantage of multicore performance.
  3. TinyXML is a simple, small, C++ XML parser.
  4. TinyXML2 is a simple, small, C++ XML parser, continuation of TinyXML.
  5. Xenomai is a real-time development framework cooperating with the Linux kernel.
  6. GSL is a numerical library for C and C++ programmers.
  7. Gflags is a C++ library that implements commandline flags processing with the ability to define flags in the source file in which they are used.
  8. [Deprecated] Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.


To use the CMake modules provided by this catkin package, you must <build_depend> on it in your package.xml, like so:

<?xml version="1.0"?>
  <!-- ... -->

Then you must find_package it in your CMakeLists.txt along with your other catkin build dependencies:

find_package(catkin REQUIRED COMPONENTS ... cmake_modules ...)

OR by find_package'ing it directly:

find_package(cmake_modules REQUIRED)

After the above find_package invocations, the modules provided by cmake_modules will be available in your CMAKE_MODULE_PATH to be found. For example you can find TinyXML by using the following:

find_package(TinyXML REQUIRED)

Lookup sheet

Eigen [Deprecated]
find_package(Eigen REQUIRED)
find_package(NUMPY REQUIRED)
find_package(TBB REQUIRED)
find_package(TinyXML REQUIRED)
find_package(Xenomai REQUIRED)
find_package(GSL REQUIRED)
find_package(Gflags REQUIRED)
You can’t perform that action at this time.