ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Annoying dynamic_reconfigure code regeneration on catkin_make

asked 2016-06-15 05:56:53 -0500

updated 2016-06-15 10:34:51 -0500

The dynamic reconfigure code generation looks it is being executed unconditionally even if the python generation script (.cfg) did not change.

This means that everytime that catkin_make command is called some new header (.h) files are generated by the dynamic_reconfigure cmake functionality. Because of this, the "incremental build mechanism" of cmake gets broken and your *.cpp files that depens on those headers recompile. This may make the development process slower.

Is this the expected behavior of the dynamic_reconfigure code generation system? Is there any way to avoid breaking the incremental build of cmake?

Until the current moment I have worked with these approaches (but I would like to avoid them because they do not satisfy me totally):

  • the dynamic reconfigure files to other project and use the catkin_make's "black package list"
  • building manually the targets I need the catkin_make's "--pkg" flag
edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2016-06-15 11:04:38 -0500

ahendrix gravatar image

updated 2016-06-15 11:05:05 -0500

dynamic_reconfigure should not regenerate the headers unless the .cfg file actually changes.

Basic reasons for generating headers each time can be:

  • file name doesn't match the class name, so cmake doesn't detect that the headers have been generated
  • using the rosbuild generator with catkin

Have a look at for another discussion of this topic.

edit flag offensive delete link more


Really worked. Thanks. This small detail can really decrease the development productivity.

Pablo Iñigo Blasco gravatar image Pablo Iñigo Blasco  ( 2016-06-15 11:12:44 -0500 )edit

Question Tools



Asked: 2016-06-15 05:56:53 -0500

Seen: 382 times

Last updated: Jun 15 '16