Split librtabmap_ros.so in to 3 libraries to decrease compilation time. Added scan-only common subscribers.

This commit is contained in:
matlabbe
2018-11-14 17:51:47 -05:00
parent adcaa98cec
commit 2ac46c983a
13 changed files with 928 additions and 48 deletions
+45 -22
View File
@@ -170,8 +170,26 @@ SET(Libraries
${catkin_LIBRARIES}
${RTABMap_LIBRARIES}
)
SET(rtabmap_sync_lib_src
src/CommonDataSubscriber.cpp
src/impl/CommonDataSubscriberDepth.cpp
src/impl/CommonDataSubscriberStereo.cpp
src/impl/CommonDataSubscriberRGBD.cpp
src/impl/CommonDataSubscriberRGBD2.cpp
src/impl/CommonDataSubscriberRGBD3.cpp
src/impl/CommonDataSubscriberRGBD4.cpp
src/impl/CommonDataSubscriberScan.cpp
src/CoreWrapper.cpp # we put CoreWrapper here instead of plugins lib to avoid long compilation time on plugins lib
)
SET(rtabmap_ros_lib_src
src/MsgConversion.cpp
src/MapsManager.cpp
src/OdometryROS.cpp
)
SET(rtabmap_plugins_lib_src
src/nodelets/rgbd_odometry.cpp
src/nodelets/stereo_odometry.cpp
src/nodelets/rgbdicp_odometry.cpp
@@ -187,21 +205,10 @@ SET(rtabmap_ros_lib_src
src/nodelets/obstacles_detection_old.cpp
src/nodelets/point_cloud_aggregator.cpp
src/nodelets/undistort_depth.cpp
src/OdometryROS.cpp
src/MsgConversion.cpp
src/MapsManager.cpp
src/CommonDataSubscriber.cpp
src/CoreWrapper.cpp
src/impl/CommonDataSubscriberDepth.cpp
src/impl/CommonDataSubscriberStereo.cpp
src/impl/CommonDataSubscriberRGBD.cpp
src/impl/CommonDataSubscriberRGBD2.cpp
src/impl/CommonDataSubscriberRGBD3.cpp
src/impl/CommonDataSubscriberRGBD4.cpp
)
IF(${cv_bridge_VERSION_MAJOR} GREATER 1 OR ${cv_bridge_VERSION_MINOR} GREATER 10)
SET(rtabmap_ros_lib_src ${rtabmap_ros_lib_src} src/nodelets/rgbd_sync.cpp src/nodelets/stereo_sync.cpp)
SET(rtabmap_plugins_lib_src ${rtabmap_plugins_lib_src} src/nodelets/rgbd_sync.cpp src/nodelets/stereo_sync.cpp)
ELSE()
ADD_DEFINITIONS("-DCV_BRIDGE_HYDRO")
ENDIF()
@@ -214,9 +221,9 @@ SET(Libraries
${costmap_2d_LIBRARIES}
${Libraries}
)
SET(rtabmap_ros_lib_src
SET(rtabmap_plugins_lib_src
src/costmap_2d/static_layer.cpp
${rtabmap_ros_lib_src}
${rtabmap_plugins_lib_src}
)
ENDIF(costmap_2d_FOUND)
@@ -268,8 +275,8 @@ set_property(
PROPERTY COMPILE_DEFINITIONS QT_NO_KEYWORDS
)
SET(rtabmap_ros_lib_src
${rtabmap_ros_lib_src}
SET(rtabmap_plugins_lib_src
${rtabmap_plugins_lib_src}
src/rviz/MapCloudDisplay.cpp
src/rviz/MapGraphDisplay.cpp
src/rviz/InfoDisplay.cpp
@@ -281,18 +288,30 @@ ENDIF(rviz_FOUND)
############################
## Declare a cpp library
############################
add_library(rtabmap_sync
${rtabmap_sync_lib_src}
)
add_library(rtabmap_ros
${rtabmap_ros_lib_src}
)
add_library(rtabmap_plugins
${rtabmap_plugins_lib_src}
)
target_link_libraries(rtabmap_sync
rtabmap_ros
)
target_link_libraries(rtabmap_ros
${Libraries}
${OGRE_LIBRARIES}
)
target_link_libraries(rtabmap_plugins
rtabmap_ros
)
IF(Qt5_FOUND)
QT5_USE_MODULES(rtabmap_ros Widgets Core Gui)
QT5_USE_MODULES(rtabmap_plugins Widgets Core Gui)
ENDIF(Qt5_FOUND)
add_dependencies(rtabmap_ros ${${PROJECT_NAME}_EXPORTED_TARGETS})
add_dependencies(rtabmap_plugins ${${PROJECT_NAME}_EXPORTED_TARGETS})
add_executable(rtabmap src/CoreNode.cpp)
target_link_libraries(rtabmap ${Libraries})
@@ -348,7 +367,7 @@ set_target_properties(rtabmap_stereo_camera PROPERTIES OUTPUT_NAME "stereo_camer
IF(RTABMAP_GUI)
add_executable(rtabmapviz src/GuiNode.cpp src/GuiWrapper.cpp src/PreferencesDialogROS.cpp)
target_link_libraries(rtabmapviz rtabmap_ros ${QT_LIBRARIES})
target_link_libraries(rtabmapviz rtabmap_sync ${QT_LIBRARIES})
IF(Qt5_FOUND)
QT5_USE_MODULES(rtabmapviz Widgets Core Gui)
ENDIF()
@@ -365,7 +384,7 @@ target_link_libraries(rtabmap_odom_msg_to_tf rtabmap_ros)
set_target_properties(rtabmap_odom_msg_to_tf PROPERTIES OUTPUT_NAME "odom_msg_to_tf")
add_executable(rtabmap_pointcloud_to_depthimage src/PointCloudToDepthImageNode.cpp)
target_link_libraries(rtabmap_pointcloud_to_depthimage rtabmap_ros)
target_link_libraries(rtabmap_pointcloud_to_depthimage ${Libraries})
set_target_properties(rtabmap_pointcloud_to_depthimage PROPERTIES OUTPUT_NAME "pointcloud_to_depthimage")
#############
@@ -385,7 +404,9 @@ set_target_properties(rtabmap_pointcloud_to_depthimage PROPERTIES OUTPUT_NAME "p
## Mark executables and/or libraries for installation
IF(RTABMAP_GUI)
install(TARGETS
rtabmap_ros
rtabmap_sync
rtabmap_ros
rtabmap_plugins
rtabmap
rtabmapviz
rtabmap_rgbd_odometry
@@ -404,7 +425,9 @@ install(TARGETS
)
ELSE() # without rtabmapviz
install(TARGETS
rtabmap_ros
rtabmap_sync
rtabmap_ros
rtabmap_plugins
rtabmap
rtabmap_rgbd_odometry
rtabmap_icp_odometry