First (and I feel this is important): this is not a Catkin-specific problem or piece of functionality. The install(..)
statement is part of regular CMake, and we just make use of it in our CMakeLists.txt
. Only the DESTINATION
argument has a Catkin-specific value, but install(..)
would work with any path (it would just not install the launch files in the 'correct' (for ROS anyway) location).
As for your question: installing "launch files [or other resources]" (ie: not programs, libraries or headers) is documented on the ROS Wiki under wiki/catkin/CMakeLists.txt - Optional Step: Specifying Installable Targets - Installing roslaunch Files or Other Resources:
Other resources like launchfiles can be installed to ${CATKIN_PACKAGE_SHARE_DESTINATION}
:
install(DIRECTORY launch/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
PATTERN ".svn" EXCLUDE)
The PATTERN ".svn" EXCLUDE
only makes sense if you actually use Subversion as your VCS. In other cases you can leave it out.
Note that this installs an entire directory, which could not be what you want. Installing individual files is also possible, see the CMake documentation for install(..)
for details.
I assume you meant to write "but it wasn't working"?
It's always a good idea to include any error messages or descriptions of unexpected/undesired behaviour. "it's not working" is too general, and we can't guess as to what didn't actually work.