这里记录一个使用ros的CMakeLists.txt的模板,方便以后套用。
示例
cmake_minimum_required(VERSION 3.0.2)
project(rs_parse)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3")
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
pcl_ros
pcl_conversions
std_msgs
sensor_msgs
)
catkin_package(
INCLUDE_DIRS
DEPENDS PCL
)
include_directories(
include
${catkin_INCLUDE_DIRS}
${PCL_INCLUDE_DIRS}
)
link_directories(
include
${PCL_LIBRARY_DIRS}
)
add_executable(rs_to_velodyne src/rs_to_velodyne.cpp)
add_dependencies(rs_to_velodyne ${catkin_EXPORTED_TARGETS})
target_link_libraries(rs_to_velodyne ${catkin_LIBRARIES} ${PCL_LIBRARIES} ${OpenCV_LIBRARIES})
## from another repo
install(TARGETS
${PROJECT_NAME}_filter_nodelet
${PROJECT_NAME}_multi_sensor_nodelet
${PROJECT_NAME}_control_nodelet
${PROJECT_NAME}_debug_nodelet
RUNTIME DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION})
install(FILES nodelet.xml DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
install(DIRECTORY launch/release/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch)
install(DIRECTORY config/filtering/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/config/filtering)
install(DIRECTORY config/sensor/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/config/sensor)
install(DIRECTORY rviz/ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/rviz)