Fixed build for Qt5 (default version used by Kinetic)

This commit is contained in:
matlabbe
2016-05-04 17:07:40 -04:00
parent 1411c1246c
commit 1d0f9d2b90
5 changed files with 53 additions and 16 deletions
+39 -3
View File
@@ -23,8 +23,16 @@ find_package(RTABMap 0.11.4 REQUIRED)
find_package(OpenCV REQUIRED) find_package(OpenCV REQUIRED)
#Qt stuff #Qt stuff
FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui REQUIRED) # If Qt is here, rtabmapviz will be built
INCLUDE(${QT_USE_FILE}) # look for Qt5 before Qt4
FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui)
IF(Qt5_FOUND)
FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui)
ENDIF(Qt5_FOUND)
IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE})
ENDIF(QT4_FOUND)
## We also use Ogre ## We also use Ogre
include($ENV{ROS_ROOT}/core/rosbuild/FindPkgConfig.cmake) include($ENV{ROS_ROOT}/core/rosbuild/FindPkgConfig.cmake)
@@ -159,6 +167,13 @@ SET(rtabmap_ros_lib_src
) )
ENDIF(costmap_2d_FOUND) ENDIF(costmap_2d_FOUND)
IF(QT4_FOUND OR Qt5_FOUND)
SET(Libraries
${Libraries}
${QT_LIBRARIES}
)
ENDIF(QT4_FOUND OR Qt5_FOUND)
# If rviz is found, add plugins # If rviz is found, add plugins
IF(rviz_FOUND) IF(rviz_FOUND)
MESSAGE(STATUS "WITH rviz") MESSAGE(STATUS "WITH rviz")
@@ -172,12 +187,21 @@ SET(Libraries
) )
## RVIZ plugin ## RVIZ plugin
IF(QT4_FOUND)
qt4_wrap_cpp(MOC_FILES qt4_wrap_cpp(MOC_FILES
src/rviz/MapCloudDisplay.h src/rviz/MapCloudDisplay.h
src/rviz/MapGraphDisplay.h src/rviz/MapGraphDisplay.h
src/rviz/InfoDisplay.h src/rviz/InfoDisplay.h
src/rviz/OrbitOrientedViewController.h src/rviz/OrbitOrientedViewController.h
) )
ELSE()
qt5_wrap_cpp(MOC_FILES
src/rviz/MapCloudDisplay.h
src/rviz/MapGraphDisplay.h
src/rviz/InfoDisplay.h
src/rviz/OrbitOrientedViewController.h
)
ENDIF()
# tf:message_filters, mixing boost and Qt signals # tf:message_filters, mixing boost and Qt signals
set_property( set_property(
@@ -201,11 +225,14 @@ ENDIF(rviz_FOUND)
add_library(rtabmap_ros add_library(rtabmap_ros
${rtabmap_ros_lib_src} ${rtabmap_ros_lib_src}
) )
target_link_libraries(rtabmap_ros target_link_libraries(rtabmap_ros
${Libraries} ${Libraries}
${QT_LIBRARIES}
${OGRE_LIBRARIES} ${OGRE_LIBRARIES}
) )
IF(Qt5_FOUND)
QT5_USE_MODULES(rtabmap_ros Widgets Core Gui)
ENDIF()
add_dependencies(rtabmap_ros ${${PROJECT_NAME}_EXPORTED_TARGETS}) add_dependencies(rtabmap_ros ${${PROJECT_NAME}_EXPORTED_TARGETS})
# If octomap is found, add definition # If octomap is found, add definition
@@ -243,6 +270,9 @@ target_link_libraries(camera ${Libraries})
IF(RTABMAP_GUI) IF(RTABMAP_GUI)
add_executable(rtabmapviz src/GuiNode.cpp src/GuiWrapper.cpp src/PreferencesDialogROS.cpp) add_executable(rtabmapviz src/GuiNode.cpp src/GuiWrapper.cpp src/PreferencesDialogROS.cpp)
target_link_libraries(rtabmapviz rtabmap_ros ${QT_LIBRARIES} ${Libraries}) target_link_libraries(rtabmapviz rtabmap_ros ${QT_LIBRARIES} ${Libraries})
IF(Qt5_FOUND)
QT5_USE_MODULES(rtabmapviz Widgets Core Gui)
ENDIF()
ELSE() ELSE()
MESSAGE(WARNING "Found RTAB-Map built without its GUI library. Node rtabmapviz will not be built!") MESSAGE(WARNING "Found RTAB-Map built without its GUI library. Node rtabmapviz will not be built!")
ENDIF() ENDIF()
@@ -329,6 +359,12 @@ install(FILES
costmap_plugins.xml costmap_plugins.xml
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
) )
IF(costmap_2d_FOUND)
install(FILES
costmap_plugins.xml
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)
ENDIF(costmap_2d_FOUND)
############# #############
## Testing ## ## Testing ##
+2 -1
View File
@@ -37,7 +37,8 @@
<build_depend>class_loader</build_depend> <build_depend>class_loader</build_depend>
<build_depend>rtabmap</build_depend> <build_depend>rtabmap</build_depend>
<build_depend>move_base_msgs</build_depend> <build_depend>move_base_msgs</build_depend>
<build_depend>costmap_2d</build_depend> <!-- costmap_2d is not on kinetic yet -->
<!-- <build_depend>costmap_2d</build_depend> -->
<build_depend>octomap_ros</build_depend> <build_depend>octomap_ros</build_depend>
<build_depend>octomap</build_depend> <build_depend>octomap</build_depend>
+2 -2
View File
@@ -26,8 +26,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include "GuiWrapper.h" #include "GuiWrapper.h"
#include <QtGui/QApplication> #include <QApplication>
#include <QtCore/QDir> #include <QDir>
#include <cv_bridge/cv_bridge.h> #include <cv_bridge/cv_bridge.h>
#include <std_srvs/Empty.h> #include <std_srvs/Empty.h>
+7 -7
View File
@@ -27,14 +27,14 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "PreferencesDialogROS.h" #include "PreferencesDialogROS.h"
#include <rtabmap/core/Parameters.h> #include <rtabmap/core/Parameters.h>
#include <QtCore/QDir> #include <QDir>
#include <QtCore/QFileInfo> #include <QFileInfo>
#include <QtCore/QSettings> #include <QSettings>
#include <QtGui/QHBoxLayout> #include <QHBoxLayout>
#include <QtCore/QTimer> #include <QTimer>
#include <QtGui/QLabel> #include <QLabel>
#include <rtabmap/core/RtabmapEvent.h> #include <rtabmap/core/RtabmapEvent.h>
#include <QtGui/QMessageBox> #include <QMessageBox>
#include <ros/exceptions.h> #include <ros/exceptions.h>
#include <rtabmap/utilite/UStl.h> #include <rtabmap/utilite/UStl.h>
+3 -3
View File
@@ -25,9 +25,9 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include <QtGui/QApplication> #include <QApplication>
#include <QtGui/QMessageBox> #include <QMessageBox>
#include <QtCore/QTimer> #include <QTimer>
#include <OgreSceneNode.h> #include <OgreSceneNode.h>
#include <OgreSceneManager.h> #include <OgreSceneManager.h>