Files
rtabmap_ros/rtabmap_slam/CMakeLists.txt
T

131 lines
3.0 KiB
CMake

cmake_minimum_required(VERSION 3.5)
project(rtabmap_slam)
find_package(catkin REQUIRED COMPONENTS
actionlib actionlib_msgs cv_bridge geometry_msgs
move_base_msgs nav_msgs nodelet pluginlib sensor_msgs
std_msgs std_srvs tf tf2_ros visualization_msgs
rtabmap_msgs rtabmap_util rtabmap_sync
)
# Optional components
find_package(apriltag_ros)
find_package(fiducial_msgs)
IF(WIN32)
add_compile_options(-bigobj)
ENDIF(WIN32)
###################################
## catkin specific configuration ##
###################################
SET(optional_dependencies "")
IF(apriltag_ros_FOUND)
SET(optional_dependencies ${optional_dependencies} apriltag_ros)
ENDIF(apriltag_ros_FOUND)
catkin_package(
INCLUDE_DIRS include
LIBRARIES rtabmap_slam_plugins
CATKIN_DEPENDS actionlib actionlib_msgs cv_bridge geometry_msgs
move_base_msgs nav_msgs nodelet pluginlib sensor_msgs
std_msgs std_srvs tf tf2_ros visualization_msgs
rtabmap_msgs rtabmap_util rtabmap_sync ${optional_dependencies}
)
###########
## Build ##
###########
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/include
${catkin_INCLUDE_DIRS}
)
# libraries
SET(Libraries
${catkin_LIBRARIES}
)
SET(rtabmap_slam_plugins_lib_src
src/CoreWrapper.cpp
)
# If octomap is found, add definition
IF(octomap_msgs_FOUND)
MESSAGE(STATUS "WITH octomap_msgs")
ADD_DEFINITIONS("-DWITH_OCTOMAP_MSGS")
ENDIF(octomap_msgs_FOUND)
# If grid_map_core is found, add definition
IF(grid_map_core_FOUND)
MESSAGE(STATUS "WITH grid_map_core")
ADD_DEFINITIONS("-DWITH_GRID_MAP_CORE")
ENDIF(grid_map_core_FOUND)
# If apriltag_ros is found, add definition
IF(apriltag_ros_FOUND)
MESSAGE(STATUS "WITH apriltag_ros")
include_directories(
${apriltag_ros_INCLUDE_DIRS}
)
SET(Libraries
${apriltag_ros_LIBRARIES}
${Libraries}
)
ADD_DEFINITIONS("-DWITH_APRILTAG_ROS")
ENDIF(apriltag_ros_FOUND)
# If fiducial_msgs is found, add definition
IF(fiducial_msgs_FOUND)
MESSAGE(STATUS "WITH fiducial_msgs")
include_directories(
${fiducial_msgs_INCLUDE_DIRS}
)
SET(Libraries
${fiducial_msgs_LIBRARIES}
${Libraries}
)
ADD_DEFINITIONS("-DWITH_FIDUCIAL_MSGS")
ENDIF(fiducial_msgs_FOUND)
############################
## Declare a cpp library
############################
add_library(rtabmap_slam_plugins
${rtabmap_slam_plugins_lib_src}
)
target_link_libraries(rtabmap_slam_plugins
${Libraries}
)
add_executable(rtabmap_node src/CoreNode.cpp)
target_link_libraries(rtabmap_node ${Libraries})
set_target_properties(rtabmap_node PROPERTIES OUTPUT_NAME "rtabmap")
#############
## Install ##
#############
install(TARGETS
rtabmap_slam_plugins
rtabmap_node
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
install(DIRECTORY include/${PROJECT_NAME}/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
FILES_MATCHING PATTERN "*.h"
)
install(FILES
nodelet_plugins.xml
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)