From 633019c0177f17478f04a7b7150990652c582e68 Mon Sep 17 00:00:00 2001 From: matlabbe Date: Thu, 13 Aug 2015 15:12:43 -0400 Subject: [PATCH] CMake: added build options WITH_*** for all optional dependencies --- CMakeLists.txt | 79 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 62 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b468954..10cd4696 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -121,26 +121,57 @@ IF(APPLE) ENDIF(APPLE) ####### DEPENDENCIES ####### + +option(WITH_QT "Include Qt support" ON) +option(WITH_FREENECT "Include Freenect support" ON) +option(WITH_FREENECT2 "Include Freenect2 support" ON) +option(WITH_OPENNI2 "Include OpenNI2 support" ON) +option(WITH_DC1394 "Include dc1394 support" ON) +option(WITH_G2O "Include g2o support" ON) +option(WITH_FLYCAPTURE2 "Include FlyCapture2/Triclops support" ON) + FIND_PACKAGE(OpenCV REQUIRED) FIND_PACKAGE(PCL 1.7 REQUIRED) -FIND_PACKAGE(VTK REQUIRED) -IF("${VTK_MAJOR_VERSION}" EQUAL 5) - FIND_PACKAGE(QVTK REQUIRED) # only for VTK 5 -ENDIF("${VTK_MAJOR_VERSION}" EQUAL 5) FIND_PACKAGE(ZLIB REQUIRED) -FIND_PACKAGE(Freenect) -FIND_PACKAGE(freenect2 QUIET) -FIND_PACKAGE(OpenNI2) -FIND_PACKAGE(DC1394) -FIND_PACKAGE(G2O) -FIND_PACKAGE(FlyCapture2) +IF(WITH_QT) # If Qt is here, the GUI will be built -IF("${RTABMAP_QT_VERSION}" STREQUAL "4") - FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtSvg) -ELSE() - FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui Svg) -ENDIF() + IF("${RTABMAP_QT_VERSION}" STREQUAL "4") + FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtSvg) + ELSE() + FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui Svg) + ENDIF() + IF(QT4_FOUND OR Qt5_FOUND) + FIND_PACKAGE(VTK REQUIRED) + IF("${VTK_MAJOR_VERSION}" EQUAL 5) + FIND_PACKAGE(QVTK REQUIRED) # only for VTK 5 + ENDIF("${VTK_MAJOR_VERSION}" EQUAL 5) + ENDIF(QT4_FOUND OR Qt5_FOUND) +ENDIF(WITH_QT) + +IF(WITH_FREENECT) + FIND_PACKAGE(Freenect) +ENDIF(WITH_FREENECT) + +IF(WITH_FREENECT2) + FIND_PACKAGE(freenect2 QUIET) +ENDIF(WITH_FREENECT2) + +IF(WITH_OPENNI2) + FIND_PACKAGE(OpenNI2) +ENDIF(WITH_OPENNI2) + +IF(WITH_DC1394) + FIND_PACKAGE(DC1394) +ENDIF(WITH_DC1394) + +IF(WITH_G2O) + FIND_PACKAGE(G2O) +ENDIF(WITH_G2O) + +IF(WITH_FLYCAPTURE2) + FIND_PACKAGE(FlyCapture2) +ENDIF(WITH_FLYCAPTURE2) ####### OSX BUNDLE CMAKE_INSTALL_PREFIX ####### IF(APPLE AND BUILD_AS_BUNDLE) @@ -183,8 +214,8 @@ ADD_SUBDIRECTORY( corelib ) IF(Qt5_FOUND OR (QT4_FOUND AND QT_QTCORE_FOUND AND QT_QTGUI_FOUND)) ADD_SUBDIRECTORY( guilib ) ADD_SUBDIRECTORY( app ) -ELSE() - MESSAGE(STATUS "[WARNING] Qt not found, the GUI lib and the stand-alone application will not be compiled...") +ELSEIF(WITH_QT) + MESSAGE(WARNING "Qt not found, the GUI lib and the stand-alone application will not be compiled...") ENDIF() ADD_SUBDIRECTORY( tools ) @@ -346,36 +377,48 @@ ENDIF(OpenCV_FOUND) IF(Freenect_FOUND) MESSAGE(STATUS " With Freenect = YES") +ELSEIF(NOT WITH_FREENECT) +MESSAGE(STATUS " With Freenect = NO (WITH_FREENECT=OFF)") ELSE() MESSAGE(STATUS " With Freenect = NO (libfreenect not found)") ENDIF() IF(OpenNI2_FOUND) MESSAGE(STATUS " With OpenNI2 = YES") +ELSEIF(NOT WITH_OPENNI2) +MESSAGE(STATUS " With OpenNI2 = NO (WITH_OPENNI2=OFF)") ELSE() MESSAGE(STATUS " With OpenNI2 = NO (OpenNI2 not found)") ENDIF() IF(freenect2_FOUND) MESSAGE(STATUS " With Freenect2 = YES") +ELSEIF(NOT WITH_FREENECT2) +MESSAGE(STATUS " With Freenect2 = NO (WITH_FREENECT2=OFF)") ELSE() MESSAGE(STATUS " With Freenect2 = NO (libfreenect2 not found)") ENDIF() IF(DC1394_FOUND) MESSAGE(STATUS " With dc1394 = YES") +ELSEIF(NOT WITH_DC1394) +MESSAGE(STATUS " With dc1394 = NO (WITH_DC1394=OFF)") ELSE() MESSAGE(STATUS " With dc1394 = NO (dc1394 not found)") ENDIF() IF(FlyCapture2_FOUND) MESSAGE(STATUS " With FlyCapture2/Triclops = YES") +ELSEIF(NOT WITH_FLYCAPTURE2) +MESSAGE(STATUS " With FlyCapture2/Triclops = NO (WITH_FLYCAPTURE2=OFF)") ELSE() MESSAGE(STATUS " With FlyCapture2/Triclops = NO (Point Grey SDK not found)") ENDIF() IF(G2O_FOUND) MESSAGE(STATUS " With g2o = YES") +ELSEIF(NOT WITH_G2O) +MESSAGE(STATUS " With g2o = NO (WITH_G2O=OFF)") ELSE() MESSAGE(STATUS " With g2o = NO (g2o not found)") ENDIF() @@ -384,6 +427,8 @@ IF(QT4_FOUND) MESSAGE(STATUS " With Qt = YES (version 4)") ELSEIF(Qt5_FOUND) MESSAGE(STATUS " With Qt = YES (version 5)") +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)") ENDIF()