0
$\begingroup$

Rosanswers logo

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

Originally posted by Pablo Iñigo Blasco on ROS Answers with karma: 2982 on 2016-06-15

Post score: 2

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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 http://answers.ros.org/question/165426/generate_dynamic_reconfigure_options-executed-every-build/ for another discussion of this topic.


Originally posted by ahendrix with karma: 47576 on 2016-06-15

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by Pablo Iñigo Blasco on 2016-06-15:
Really worked. Thanks. This small detail can really decrease the development productivity.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.