diff --git a/CMakeLists.txt b/CMakeLists.txt
index f8d3a5b5..62467787 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -32,8 +32,6 @@ SET(PROJECT_VERSION_PATCH ${RTABMAP_PATCH_VERSION})
SET(PROJECT_SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
-SET(RTABMAP_QT_VERSION 4 CACHE STRING "Which QT version to use")
-
####### COMPILATION PARAMS #######
# In case of Makefiles if the user does not setup CMAKE_BUILD_TYPE, assume it's Release:
IF(${CMAKE_GENERATOR} MATCHES ".*Makefiles")
@@ -143,6 +141,11 @@ FIND_PACKAGE(OpenCV REQUIRED QUIET)
FIND_PACKAGE(PCL 1.7 REQUIRED QUIET)
FIND_PACKAGE(ZLIB REQUIRED QUIET)
+# fix libproj.so not found on Xenial
+if(NOT "${PCL_LIBRARIES}" STREQUAL "")
+ list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4")
+endif()
+
# OpenMP ("-fopenmp" should be added for flann included in PCL)
# the gcc-4.2.1 coming with MacOS X is not compatible with the OpenMP pragmas we use, so disabling OpenMP for it
if((NOT APPLE) OR (NOT CMAKE_COMPILER_IS_GNUCXX) OR (GCC_VERSION VERSION_GREATER 4.2.1) OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang"))
@@ -167,12 +170,13 @@ IF(ZLIB_FOUND)
ENDIF(ZLIB_FOUND)
IF(WITH_QT)
-# If Qt is here, the GUI will be built
- IF("${RTABMAP_QT_VERSION}" STREQUAL "4")
+ # If Qt is here, the GUI will be built
+ # look for Qt5 before Qt4
+ FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui Svg)
+ IF(NOT Qt5_FOUND)
FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtSvg)
- ELSE()
- FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui Svg)
- ENDIF()
+ ENDIF(NOT Qt5_FOUND)
+
IF(QT4_FOUND OR Qt5_FOUND)
FIND_PACKAGE(VTK REQUIRED)
IF("${VTK_MAJOR_VERSION}" EQUAL 5)
@@ -592,7 +596,7 @@ MESSAGE(STATUS " With Qt5 = YES (License: Open Source or Comme
ELSEIF(NOT WITH_QT)
MESSAGE(STATUS " With Qt = NO (WITH_QT=OFF)")
ELSE()
-MESSAGE(STATUS " With Qt = NO (Qt not found, to use Qt5 you should set -DRTABMAP_QT_VERSION=5)")
+MESSAGE(STATUS " With Qt = NO (Qt not found)")
ENDIF()
MESSAGE(STATUS "--------------------------------------------")
diff --git a/app/src/CMakeLists.txt b/app/src/CMakeLists.txt
index e921a753..fcdce8f8 100644
--- a/app/src/CMakeLists.txt
+++ b/app/src/CMakeLists.txt
@@ -5,7 +5,7 @@ SET(headers_ui
)
#This will generate moc_* for Qt
-IF("${RTABMAP_QT_VERSION}" STREQUAL "4")
+IF(QT4_FOUND)
QT4_WRAP_CPP(moc_srcs ${headers_ui})
ELSE()
QT5_WRAP_CPP(moc_srcs ${headers_ui})
@@ -25,9 +25,9 @@ SET(INCLUDE_DIRS
${PCL_INCLUDE_DIRS}
)
-IF("${RTABMAP_QT_VERSION}" STREQUAL "4")
+IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE})
-ENDIF()
+ENDIF(QT4_FOUND)
SET(LIBRARIES
${QT_LIBRARIES}
@@ -73,9 +73,9 @@ ELSE()
ADD_EXECUTABLE(rtabmap ${SRC_FILES})
ENDIF()
TARGET_LINK_LIBRARIES(rtabmap rtabmap_core rtabmap_gui rtabmap_utilite ${LIBRARIES})
-IF("${RTABMAP_QT_VERSION}" STREQUAL "5")
+IF(Qt5_FOUND)
QT5_USE_MODULES(rtabmap Widgets Core Gui Svg PrintSupport)
-ENDIF()
+ENDIF(Qt5_FOUND)
IF(APPLE AND BUILD_AS_BUNDLE)
SET_TARGET_PROPERTIES(rtabmap PROPERTIES
@@ -166,7 +166,7 @@ IF((APPLE AND BUILD_AS_BUNDLE) OR WIN32)
# over.
# To find dependencies, cmake use "otool" on Apple and "dumpbin" on Windows (make sure you have one of them).
install(CODE "
- file(GLOB_RECURSE QTPLUGINS \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/plugins/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
+ file(GLOB_RECURSE QTPLUGINS \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/plugins/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
set(BU_CHMOD_BUNDLE_ITEMS ON)
include(\"BundleUtilities\")
fixup_bundle(\"${APPS}\" \"\${QTPLUGINS}\" \"${DIRS}\")
diff --git a/examples/NoEventsExample/CMakeLists.txt b/examples/NoEventsExample/CMakeLists.txt
index 60df1003..9ffbba5f 100644
--- a/examples/NoEventsExample/CMakeLists.txt
+++ b/examples/NoEventsExample/CMakeLists.txt
@@ -16,7 +16,6 @@ if(internal)
rtabmap_gui
rtabmap_utilite
)
- SET(MY_QT_VERSION ${RTABMAP_QT_VERSION})
else()
# external build
PROJECT( MyProject )
@@ -25,15 +24,11 @@ else()
FIND_PACKAGE(OpenCV REQUIRED)
FIND_PACKAGE(PCL 1.7 REQUIRED)
- # Use Qt4 or Qt5
- SET(MY_QT_VERSION 4 CACHE STRING "Which Qt version to use")
- IF("${MY_QT_VERSION}" STREQUAL "4")
- message("4")
- FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtSvg)
- ELSE()
- message("5")
- FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui Svg)
- ENDIF()
+ # Find Qt5 first
+ FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui Svg)
+ IF(NOT Qt5_FOUND)
+ FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtSvg)
+ ENDIF(NOT Qt5_FOUND)
endif()
SET(INCLUDE_DIRS
@@ -42,9 +37,9 @@ SET(INCLUDE_DIRS
${PCL_INCLUDE_DIRS}
)
-IF("${MY_QT_VERSION}" STREQUAL "4")
+IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE})
-ENDIF()
+ENDIF(QT4_FOUND)
SET(LIBRARIES
${RTABMap_LIBRARIES}
diff --git a/examples/RGBDMapping/CMakeLists.txt b/examples/RGBDMapping/CMakeLists.txt
index 712c73d6..b13ffcb0 100644
--- a/examples/RGBDMapping/CMakeLists.txt
+++ b/examples/RGBDMapping/CMakeLists.txt
@@ -16,7 +16,6 @@ if(internal)
rtabmap_gui
rtabmap_utilite
)
- SET(MY_QT_VERSION ${RTABMAP_QT_VERSION})
else()
# external build
PROJECT( MyProject )
@@ -25,15 +24,11 @@ else()
FIND_PACKAGE(OpenCV REQUIRED)
FIND_PACKAGE(PCL 1.7 REQUIRED)
- # Use Qt4 or Qt5
- SET(MY_QT_VERSION 4 CACHE STRING "Which Qt version to use")
- IF("${MY_QT_VERSION}" STREQUAL "4")
- message("4")
- FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtSvg)
- ELSE()
- message("5")
- FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui Svg)
- ENDIF()
+ # Find Qt5 first
+ FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui Svg)
+ IF(NOT Qt5_FOUND)
+ FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtSvg)
+ ENDIF(NOT Qt5_FOUND)
endif()
SET(INCLUDE_DIRS
@@ -42,9 +37,9 @@ SET(INCLUDE_DIRS
${PCL_INCLUDE_DIRS}
)
-IF("${MY_QT_VERSION}" STREQUAL "4")
+IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE})
-ENDIF()
+ENDIF(QT4_FOUND)
SET(LIBRARIES
${RTABMap_LIBRARIES}
@@ -55,7 +50,7 @@ SET(LIBRARIES
INCLUDE_DIRECTORIES(${INCLUDE_DIRS})
-IF("${MY_QT_VERSION}" STREQUAL "4")
+IF(QT4_FOUND)
QT4_WRAP_CPP(moc_srcs MapBuilder.h)
ELSE()
QT5_WRAP_CPP(moc_srcs MapBuilder.h)
diff --git a/examples/WifiMapping/CMakeLists.txt b/examples/WifiMapping/CMakeLists.txt
index b7271056..a5ffabd3 100644
--- a/examples/WifiMapping/CMakeLists.txt
+++ b/examples/WifiMapping/CMakeLists.txt
@@ -16,7 +16,6 @@ if(internal)
rtabmap_gui
rtabmap_utilite
)
- SET(MY_QT_VERSION ${RTABMAP_QT_VERSION})
else()
# external build
PROJECT( MyProject )
@@ -25,15 +24,11 @@ else()
FIND_PACKAGE(OpenCV REQUIRED)
FIND_PACKAGE(PCL 1.7 REQUIRED)
- # Use Qt4 or Qt5
- SET(MY_QT_VERSION 4 CACHE STRING "Which Qt version to use")
- IF("${MY_QT_VERSION}" STREQUAL "4")
- message("4")
- FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtSvg)
- ELSE()
- message("5")
- FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui Svg)
- ENDIF()
+ # Find Qt5 first
+ FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui Svg)
+ IF(NOT Qt5_FOUND)
+ FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtSvg)
+ ENDIF(NOT Qt5_FOUND)
endif()
SET(INCLUDE_DIRS
@@ -42,9 +37,9 @@ SET(INCLUDE_DIRS
${PCL_INCLUDE_DIRS}
)
-IF("${MY_QT_VERSION}" STREQUAL "4")
+IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE})
-ENDIF()
+ENDIF(QT4_FOUND)
SET(LIBRARIES
${RTABMap_LIBRARIES}
diff --git a/guilib/src/CMakeLists.txt b/guilib/src/CMakeLists.txt
index e3c98f56..f2d8f159 100644
--- a/guilib/src/CMakeLists.txt
+++ b/guilib/src/CMakeLists.txt
@@ -48,7 +48,7 @@ SET(qrc
./GuiLib.qrc
)
-IF("${RTABMAP_QT_VERSION}" STREQUAL "4")
+IF(QT4_FOUND)
# generate rules for building source files from the resources
QT4_ADD_RESOURCES(srcs_qrc ${qrc})
@@ -106,9 +106,9 @@ SET(INCLUDE_DIRS
${PCL_INCLUDE_DIRS}
)
-IF("${RTABMAP_QT_VERSION}" STREQUAL "4")
+IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE})
-ENDIF()
+ENDIF(QT4_FOUND)
SET(LIBRARIES
${QT_LIBRARIES}
@@ -131,9 +131,9 @@ ADD_LIBRARY(rtabmap_gui ${SRC_FILES})
# Linking with Qt libraries
TARGET_LINK_LIBRARIES(rtabmap_gui rtabmap_core rtabmap_utilite ${LIBRARIES})
-IF("${RTABMAP_QT_VERSION}" STREQUAL "5")
+IF(Qt5_FOUND)
QT5_USE_MODULES(rtabmap_gui Widgets Core Gui Svg PrintSupport)
-ENDIF()
+ENDIF(Qt5_FOUND)
SET_TARGET_PROPERTIES(
rtabmap_gui
diff --git a/package.xml b/package.xml
index 343651cf..1ebc5f33 100644
--- a/package.xml
+++ b/package.xml
@@ -12,19 +12,17 @@
cmake
- libpcl-all-dev
- libqt4-dev
- libvtk-qt
+ libpcl-all-dev
libsqlite3-dev
zlib
libfreenect
libopenni-dev
libopenni2-dev
cv_bridge
+
+ libproj-dev
libpcl-all-dev
- libqt4-dev
- libvtk-qt
libsqlite3-dev
zlib
libfreenect
diff --git a/tools/Calibration/CMakeLists.txt b/tools/Calibration/CMakeLists.txt
index 4915e6a8..8c1c87a9 100644
--- a/tools/Calibration/CMakeLists.txt
+++ b/tools/Calibration/CMakeLists.txt
@@ -6,9 +6,9 @@ SET(INCLUDE_DIRS
${PCL_INCLUDE_DIRS}
)
-IF("${RTABMAP_QT_VERSION}" STREQUAL "4")
+IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE})
-ENDIF()
+ENDIF(QT4_FOUND)
SET(LIBRARIES
${OpenCV_LIBRARIES}
diff --git a/tools/DataRecorder/CMakeLists.txt b/tools/DataRecorder/CMakeLists.txt
index d7361db8..d93af8a1 100644
--- a/tools/DataRecorder/CMakeLists.txt
+++ b/tools/DataRecorder/CMakeLists.txt
@@ -12,9 +12,9 @@ SET(INCLUDE_DIRS
${PCL_INCLUDE_DIRS}
)
-IF("${RTABMAP_QT_VERSION}" STREQUAL "4")
+IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE})
-ENDIF()
+ENDIF(QT4_FOUND)
SET(LIBRARIES
${OpenCV_LIBRARIES}
diff --git a/tools/DatabaseViewer/CMakeLists.txt b/tools/DatabaseViewer/CMakeLists.txt
index 69bb750b..b04b2ed2 100644
--- a/tools/DatabaseViewer/CMakeLists.txt
+++ b/tools/DatabaseViewer/CMakeLists.txt
@@ -11,9 +11,9 @@ SET(INCLUDE_DIRS
${PCL_INCLUDE_DIRS}
)
-IF("${RTABMAP_QT_VERSION}" STREQUAL "4")
+IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE})
-ENDIF()
+ENDIF(QT4_FOUND)
SET(LIBRARIES
${OpenCV_LIBRARIES}
diff --git a/tools/EpipolarGeometry/CMakeLists.txt b/tools/EpipolarGeometry/CMakeLists.txt
index ab519b2c..6a2ae47a 100644
--- a/tools/EpipolarGeometry/CMakeLists.txt
+++ b/tools/EpipolarGeometry/CMakeLists.txt
@@ -11,9 +11,9 @@ SET(INCLUDE_DIRS
${PCL_INCLUDE_DIRS}
)
-IF("${RTABMAP_QT_VERSION}" STREQUAL "4")
+IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE})
-ENDIF()
+ENDIF(QT4_FOUND)
SET(LIBRARIES
${OpenCV_LIBRARIES}
diff --git a/tools/OdometryViewer/CMakeLists.txt b/tools/OdometryViewer/CMakeLists.txt
index 3ec03e4a..05733d36 100644
--- a/tools/OdometryViewer/CMakeLists.txt
+++ b/tools/OdometryViewer/CMakeLists.txt
@@ -8,9 +8,9 @@ SET(INCLUDE_DIRS
${PCL_INCLUDE_DIRS}
)
-IF("${RTABMAP_QT_VERSION}" STREQUAL "4")
+IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE})
-ENDIF()
+ENDIF(QT4_FOUND)
SET(LIBRARIES
${OpenCV_LIBRARIES}