I agree wholeheartedly, and I have had my own cross-platform experiences trying to make ROS packages that I could easily build on gnulinux and xenomai. It's not trivial.
project(my_package)
find_package(ROS REQUIRED COMPONENTS
cpp_common
rostime
sensor_msgs)
include_directories(${ROS_INCLUDE_DIRS})
add_executable(myexec ...)
target_link_libraries(myexec ${ROS_LIBRARIES})
In order to declare a "ros package" you declare a "CMake project" should we start calling them "ros projects"?
In order to depend on "ros packages" you find the "ROS CMake package" and require several "ROS components" which doesn't really mean anything on its own.
If we assume by default that ROS components are required, we can simplify this a bit for new users (of ros or catkin) by making roscreate-pkg and the tutorials not even use the word "COMPONENTS" since it's an unnecessary argument if you're requiring them, ie:
find_package(ROS REQUIRED
cpp_common
rostime
sensor_msgs)
I've always liked what I've heard and seen of Catkin, I just want to make sure that we don't accidentally build a CMake wall around the ros community that makes it harder for people to get in and join the party.