Robotics StackExchange | Archived questions

Make project findable by non-ROS CMakeLists

I have a package (let's say it's called my_project) in a catkin workspace which creates a library that I would like to be able to find_package in other non-ROS cmake projects. By default the various cmake files are created in

my_ws/devel/.private/my_project/share/my_project/cmake/my_projectConfig-version.cmake
my_ws/devel/.private/my_project/share/my_project/cmake/my_projectConfig.cmake
my_ws/devel/share/my_project/cmake/my_projectConfig-version.cmake
my_ws/devel/share/my_project/cmake/my_projectConfig.cmake

I have tried adding the following install rules (not at the same time) to the CMakeLists of my_project to export these to /usr/local/share/my_project, but it doesn't seem to work:

install(FILES ${CATKIN_DEVEL_PREFIX}${CATKIN_PACKAGE_SHARE_DESTINATION}/cmake/${PROJECT_NAME}Config.cmake
  ${CATKIN_DEVEL_PREFIX}${CATKIN_PACKAGE_SHARE_DESTINATION}/cmake/${PROJECT_NAME}Config-version.cmake
  DESTINATION /usr/local/share/${PROJECT_NAME})
install(DIRECTORY ${CATKIN_DEVEL_PREFIX}${CATKIN_PACKAGE_SHARE_DESTINATION}
  DESTINATION /usr/local/share)

What is the correct way to install these files so that I can use find_package from non-ROS CMakeLists files?

Asked by heuristicus on 2018-02-02 04:25:01 UTC

Comments

Answers