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

Revision history [back]

click to hide/show revision 1
initial version

You can use checkinstall. But it comes with a price. You can combine any number of packages in one Debian archive file. But install macro calls in CMakeLists.txt files must point to an absolute path. If you use catkin variables such as CATKIN_PACKAGE_INCLUDE_DESTINATION or CATKIN_PACKAGE_LIB_DESTINATION, it won't work. Instead, for instance, you should do:

 install(DIRECTORY include/${PROJECT_NAME}/
       DESTINATION /opt/ros/kinetic/include/
 )

After that, executing checkinstall catkin build --installsuffices. When the command finishes, you will see an output of Debian package. When you extract its content with dpkg -x <package_name>, you can actually inspect which folders are archived.

You can use checkinstall. But it comes with a price. You can combine any number of packages in one Debian archive file. But install macro calls in CMakeLists.txt files must point to an absolute path. If you use catkin variables such as CATKIN_PACKAGE_INCLUDE_DESTINATION or CATKIN_PACKAGE_LIB_DESTINATION, it won't work. Instead, for instance, you should do:

 install(DIRECTORY include/${PROJECT_NAME}/
       DESTINATION /opt/ros/kinetic/include/
 )

After that, executing catkin config --install && checkinstall catkin build --installbuildsuffices. When the command finishes, you will see an output of Debian package. When you extract its content with dpkg -x <package_name>, you can actually inspect which folders are archived.