Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

In order to be detectable as an installed ROS package your package should do two things (which ament_cmake packages does automatically in the ament_package() function):

  • install an empty marker file named ${PROJECT_NAME} to share/ament_index/resource_index (see https://github.com/ament/ament_cmake/blob/83e1b8147e2eda7d805e45c163aea60230a4d160/ament_cmake_core/cmake/index/ament_index_register_package.cmake#L28-L29 and https://github.com/ament/ament_cmake/blob/83e1b8147e2eda7d805e45c163aea60230a4d160/ament_cmake_core/cmake/index/ament_index_register_package.cmake#L28-L29) and
  • install the package.xml file to share/${PROJECT_NAME} (see https://github.com/ament/ament_cmake/blob/83e1b8147e2eda7d805e45c163aea60230a4d160/ament_cmake_core/cmake/core/ament_package.cmake#L156-L158) which might not strictly be necessary for your use case but your package should do anyway.

In contrast to ROS 1 the presence of the marker file allows for more efficient queries what packages are installed and where.