2011-06-05 14:45:39 +00:00
# Top-Level CmakeLists.txt
2014-12-17 17:28:21 +01:00
# For GNUInstallDirs
cmake_minimum_required ( VERSION 2.8.5 )
2013-12-11 00:12:44 +00:00
PROJECT ( RTABMap )
2011-06-05 14:45:39 +00:00
SET ( PROJECT_PREFIX rtabmap )
2015-01-12 14:33:40 -05:00
# Catkin doesn't support multiarch library path,
# fix to "lib" if not set by user.
2016-07-17 20:12:13 -04:00
OPTION ( MULTI_ARCH "Activate multi-arch lib directory (debian)" OFF )
IF ( NOT MULTI_ARCH AND NOT DEFINED CMAKE_INSTALL_LIBDIR )
set ( CMAKE_INSTALL_LIBDIR "lib" )
ENDIF ( NOT MULTI_ARCH AND NOT DEFINED CMAKE_INSTALL_LIBDIR )
2015-01-12 14:33:40 -05:00
2014-12-17 17:28:21 +01:00
INCLUDE ( GNUInstallDirs )
2011-06-05 14:45:39 +00:00
####### local cmake modules #######
SET ( CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake_modules" )
#######################
# VERSION
#######################
2013-12-11 00:12:44 +00:00
SET ( RTABMAP_MAJOR_VERSION 0 )
2020-05-03 21:46:25 -04:00
SET ( RTABMAP_MINOR_VERSION 20 )
2021-03-28 23:51:02 -04:00
SET ( RTABMAP_PATCH_VERSION 10 )
2013-12-11 00:12:44 +00:00
SET ( RTABMAP_VERSION
${ RTABMAP_MAJOR_VERSION } . ${ RTABMAP_MINOR_VERSION } . ${ RTABMAP_PATCH_VERSION } )
SET ( PROJECT_VERSION "${RTABMAP_VERSION}" )
2011-06-05 14:45:39 +00:00
2013-12-11 00:12:44 +00:00
SET ( PROJECT_VERSION_MAJOR ${ RTABMAP_MAJOR_VERSION } )
SET ( PROJECT_VERSION_MINOR ${ RTABMAP_MINOR_VERSION } )
SET ( PROJECT_VERSION_PATCH ${ RTABMAP_PATCH_VERSION } )
2011-06-05 14:45:39 +00:00
SET ( PROJECT_SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}" )
####### COMPILATION PARAMS #######
# In case of Makefiles if the user does not setup CMAKE_BUILD_TYPE, assume it's Release:
IF ( ${ CMAKE_GENERATOR } MATCHES ".*Makefiles" )
IF ( "${CMAKE_BUILD_TYPE}" STREQUAL "" )
set ( CMAKE_BUILD_TYPE Release )
ENDIF ( "${CMAKE_BUILD_TYPE}" STREQUAL "" )
ENDIF ( ${ CMAKE_GENERATOR } MATCHES ".*Makefiles" )
2016-02-15 19:35:24 -05:00
IF ( NOT ANDROID )
SET ( CMAKE_DEBUG_POSTFIX "d" )
2019-02-07 20:52:20 -05:00
option ( FLANN_KDTREE_MEM_OPT "Disable multi-threaded FLANN kd-tree to minimize memory allocations" OFF )
ELSE ()
option ( FLANN_KDTREE_MEM_OPT "Disable multi-threaded FLANN kd-tree to minimize memory allocations" ON )
ENDIF ()
IF ( FLANN_KDTREE_MEM_OPT )
ADD_DEFINITIONS ( "-DFLANN_KDTREE_MEM_OPT" )
ENDIF ( FLANN_KDTREE_MEM_OPT )
2011-06-05 14:45:39 +00:00
IF ( WIN32 AND NOT MINGW )
2017-05-17 16:59:35 -04:00
ADD_DEFINITIONS ( "-DNOMINMAX" )
2015-11-03 12:49:03 -05:00
ADD_DEFINITIONS ( "-wd4100 -wd4127 -wd4150 -wd4191 -wd4242 -wd4244 -wd4251 -wd4305 -wd4365 -wd4512 -wd4514 -wd4548 -wd4571 -wd4619 -wd4625 -wd4626 -wd4628 -wd4668 -wd4710 -wd4711 -wd4738 -wd4820 -wd4946 -wd4986" )
2011-06-05 14:45:39 +00:00
ELSE ()
2017-05-17 16:59:35 -04:00
ADD_DEFINITIONS ( "-Wall" )
ADD_DEFINITIONS ( "-Wno-unknown-pragmas" )
2011-06-05 14:45:39 +00:00
ENDIF ()
2016-08-11 14:13:29 -04:00
if ( POLICY CMP0020 )
2020-10-09 11:10:21 -04:00
cmake_policy ( SET CMP0020 NEW )
2016-08-11 14:13:29 -04:00
endif ()
if ( POLICY CMP0043 )
2017-05-17 16:59:35 -04:00
cmake_policy ( SET CMP0043 OLD )
2016-08-11 14:13:29 -04:00
endif ()
2011-06-05 14:45:39 +00:00
IF ( MINGW )
# Hide the --enable-auto-import warning
2017-05-17 16:59:35 -04:00
SET ( CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-auto-import" )
SET ( CMAKE_MODULE_LINKER_FLAGS "-Wl,--enable-auto-import" )
SET ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--enable-auto-import" )
2011-06-05 14:45:39 +00:00
ENDIF ( MINGW )
# GCC 4 required
IF ( UNIX OR MINGW )
EXEC_PROGRAM ( gcc ARGS "-dumpversion" OUTPUT_VARIABLE GCC_VERSION )
IF ( GCC_VERSION VERSION_LESS "4.0.0" )
MESSAGE ( FATAL_ERROR "GCC ${GCC_VERSION} found, but version 4.x.x minimum is required" )
ENDIF ( GCC_VERSION VERSION_LESS "4.0.0" )
ENDIF ( UNIX OR MINGW )
#The CDT Error Parser cannot handle error messages that span
#more than one line, which is the default gcc behavior.
#In order to force gcc to generate single line error messages with no line wrapping
IF ( CMAKE_COMPILER_IS_GNUCC )
SET ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fmessage-length=0" )
ENDIF ( CMAKE_COMPILER_IS_GNUCC )
IF ( CMAKE_COMPILER_IS_GNUCXX )
SET ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmessage-length=0" )
ENDIF ( CMAKE_COMPILER_IS_GNUCXX )
2018-11-01 18:07:52 -04:00
if ( MSVC )
2018-11-01 17:49:18 -04:00
if ( MSVC_VERSION GREATER 1500 AND ${ CMAKE_VERSION } VERSION_GREATER "2.8.6" )
include ( ProcessorCount )
ProcessorCount ( N )
if ( NOT N EQUAL 0 )
SET ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP${N}" )
SET ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP${N}" )
endif ()
endif ()
endif ()
2011-06-05 14:45:39 +00:00
# [Eclipse] Automatic Discovery of Include directories (Optional, but handy)
#SET(CMAKE_VERBOSE_MAKEFILE ON)
2014-01-24 21:42:35 +00:00
#Other paths...
IF ( APPLE )
2012-03-03 01:46:30 +00:00
# For Mac ports
SET ( CMAKE_INCLUDE_PATH "/opt/local/include;${CMAKE_INCLUDE_PATH}" )
SET ( CMAKE_LIBRARY_PATH "/opt/local/lib;${CMAKE_LIBRARY_PATH}" )
ENDIF ()
2011-06-05 14:45:39 +00:00
####### Build libraries as shared or static #######
2012-06-24 17:19:34 +00:00
OPTION ( BUILD_SHARED_LIBS "Set to OFF to build static libraries" ON )
2011-06-05 14:45:39 +00:00
####### OUTPUT DIR #######
SET ( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${ PROJECT_SOURCE_DIR } /bin )
SET ( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${ PROJECT_SOURCE_DIR } /bin )
SET ( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${ PROJECT_SOURCE_DIR } /lib )
2015-04-01 11:29:40 -04:00
# Avoid Visual Studio bin/Release and bin/Debug sub directories
SET ( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" )
SET ( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" )
SET ( CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" )
SET ( CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" )
SET ( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}" )
SET ( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}" )
2013-12-11 00:12:44 +00:00
####### INSTALL DIR #######
2018-03-27 15:50:27 -04:00
set ( INSTALL_INCLUDE_DIR include/ ${ PROJECT_PREFIX } - ${ RTABMAP_MAJOR_VERSION } . ${ RTABMAP_MINOR_VERSION } )
2013-12-11 00:12:44 +00:00
if ( WIN32 AND NOT CYGWIN )
set ( DEF_INSTALL_CMAKE_DIR CMake )
else ()
2015-01-12 14:33:40 -05:00
set ( DEF_INSTALL_CMAKE_DIR ${ CMAKE_INSTALL_LIBDIR } / ${ PROJECT_PREFIX } - ${ RTABMAP_MAJOR_VERSION } . ${ RTABMAP_MINOR_VERSION } )
2013-12-11 00:12:44 +00:00
endif ()
2018-03-27 15:50:27 -04:00
set ( INSTALL_CMAKE_DIR ${ DEF_INSTALL_CMAKE_DIR } )
2013-12-11 00:12:44 +00:00
2012-06-24 17:19:34 +00:00
####### BUILD OPTIONS #######
2017-07-13 14:14:51 -04:00
# ANDROID_PREBUILD (early exit if true)
OPTION ( ANDROID_PREBUILD "Set to ON to build rtabmap resource build tool (required for android build)" OFF )
IF ( ANDROID_PREBUILD )
MESSAGE ( "Option ANDROID_PREBUILD is set, only rtabmap resource tool will be built. You can use android toolchain after that." )
ADD_SUBDIRECTORY ( utilite )
return ()
ENDIF ( ANDROID_PREBUILD )
2018-09-04 15:44:37 -04:00
IF ( APPLE OR WIN32 )
OPTION ( BUILD_AS_BUNDLE "Set to ON to build as bundle with all embedded dependencies (DragNDrop for Mac, installer for Windows)" OFF )
ENDIF ( APPLE OR WIN32 )
2016-01-21 17:11:57 -05:00
OPTION ( BUILD_APP "Build main application" ON )
OPTION ( BUILD_TOOLS "Build tools" ON )
OPTION ( BUILD_EXAMPLES "Build examples" ON )
2011-06-05 14:45:39 +00:00
####### DEPENDENCIES #######
2016-09-01 13:40:44 -04:00
IF ( ANDROID )
option ( WITH_QT "Include Qt support" OFF )
ELSE ()
2015-08-13 15:12:43 -04:00
option ( WITH_QT "Include Qt support" ON )
2016-09-01 13:40:44 -04:00
ENDIF ()
2019-04-18 19:50:58 -04:00
option ( WITH_ORB_OCTREE "Include ORB Octree feature support" ON )
2021-01-17 01:56:27 -05:00
option ( WITH_TORCH "Include Torch support (SuperPoint)" OFF )
option ( WITH_PYTHON "Include Python3 support (PyMatcher, PyDetector)" OFF )
option ( WITH_PYTHON_THREADING "Use more than one Python interpreter." OFF )
2021-01-14 15:49:18 -05:00
option ( WITH_PDAL "Include PDAL support" ON )
2015-08-13 15:12:43 -04:00
option ( WITH_FREENECT "Include Freenect support" ON )
option ( WITH_FREENECT2 "Include Freenect2 support" ON )
2017-11-06 00:19:12 -05:00
option ( WITH_K4W2 "Include Kinect for Windows v2 support" ON )
2019-07-09 20:48:09 -04:00
option ( WITH_K4A "Include Kinect for Azure support" ON )
2015-08-13 15:12:43 -04:00
option ( WITH_OPENNI2 "Include OpenNI2 support" ON )
option ( WITH_DC1394 "Include dc1394 support" ON )
option ( WITH_G2O "Include g2o support" ON )
2015-09-02 17:51:43 -04:00
option ( WITH_GTSAM "Include GTSAM support" ON )
2016-03-01 14:25:00 -05:00
option ( WITH_TORO "Include TORO support" ON )
2019-08-17 03:55:04 -04:00
option ( WITH_CERES "Include Ceres support" ON )
2016-03-01 14:25:00 -05:00
option ( WITH_VERTIGO "Include Vertigo support" ON )
2015-08-15 12:58:29 -04:00
option ( WITH_CVSBA "Include cvsba support" ON )
2017-08-22 16:20:49 -04:00
option ( WITH_POINTMATCHER "Include libpointmatcher support" ON )
2021-03-27 15:11:20 -04:00
option ( WITH_CCCORELIB "Include CCCoreLib support" ON )
2018-08-29 14:38:50 -04:00
option ( WITH_LOAM "Include LOAM support" ON )
2015-08-13 15:12:43 -04:00
option ( WITH_FLYCAPTURE2 "Include FlyCapture2/Triclops support" ON )
2016-05-31 19:09:49 -04:00
option ( WITH_ZED "Include ZED sdk support" ON )
2021-02-28 10:31:18 -05:00
option ( WITH_ZEDOC "Include ZED Open Capture support" ON )
2016-07-26 18:39:34 -04:00
option ( WITH_REALSENSE "Include RealSense support" ON )
2017-05-05 16:10:09 -04:00
option ( WITH_REALSENSE_SLAM "Include RealSenseSlam support" ON )
2018-06-15 12:24:00 -04:00
option ( WITH_REALSENSE2 "Include RealSense support" ON )
2020-04-30 00:57:47 -04:00
option ( WITH_MYNTEYE "Include mynteye-s support" ON )
2021-03-07 12:27:21 -05:00
option ( WITH_DEPTHAI "Include depthai-core support" ON )
2016-06-28 19:00:44 -04:00
option ( WITH_OCTOMAP "Include Octomap support" ON )
2017-05-05 21:44:06 -04:00
option ( WITH_CPUTSDF "Include CPUTSDF support" ON )
2018-03-26 18:06:41 -04:00
option ( WITH_OPENCHISEL "Include open_chisel support" ON )
2020-01-06 13:39:35 -05:00
option ( WITH_ALICE_VISION "Include AliceVision support" OFF )
2017-05-30 09:27:31 -04:00
option ( WITH_FOVIS "Include FOVIS support" ON )
2017-05-30 14:03:46 -04:00
option ( WITH_VISO2 "Include VISO2 support" ON )
2017-05-31 20:57:24 -04:00
option ( WITH_DVO "Include DVO support" ON )
2021-03-09 16:00:41 -05:00
option ( WITH_ORB_SLAM "Include ORB_SLAM2 or ORB_SLAM3 support" ON )
2018-03-07 19:43:30 -05:00
option ( WITH_OKVIS "Include OKVIS support" ON )
2019-01-03 15:49:25 -05:00
option ( WITH_MSCKF_VIO "Include MSCKF_VIO support" OFF )
2019-03-18 20:45:34 -04:00
option ( WITH_VINS "Include VINS-Fusion support" ON )
2021-03-28 23:51:02 -04:00
option ( WITH_OPENVINS "Include OpenVINS support" ON )
2019-05-07 18:57:53 -04:00
option ( WITH_MADGWICK "Include Madgwick IMU filtering support" ON )
2019-08-14 12:09:56 -04:00
option ( WITH_FASTCV "Include FastCV support" ON )
2020-04-22 15:05:07 -04:00
IF ( ANDROID )
option ( PCL_OMP "With PCL OMP implementations" OFF )
ELSE ()
2016-07-17 21:04:11 -04:00
option ( PCL_OMP "With PCL OMP implementations" ON )
2020-04-22 15:05:07 -04:00
ENDIF ()
2015-08-13 15:12:43 -04:00
2019-07-31 10:37:59 -04:00
set ( RTABMAP_QT_VERSION AUTO CACHE STRING "Force a specific Qt version." )
set_property ( CACHE RTABMAP_QT_VERSION PROPERTY STRINGS AUTO 4 5 )
2015-10-02 11:23:15 -04:00
FIND_PACKAGE ( OpenCV REQUIRED QUIET )
2018-03-26 18:06:41 -04:00
2017-10-24 10:05:39 +02:00
IF ( WITH_QT )
FIND_PACKAGE ( PCL 1.7 REQUIRED QUIET COMPONENTS common io kdtree search surface filters registration sample_consensus segmentation visualization )
ELSE ()
FIND_PACKAGE ( PCL 1.7 REQUIRED QUIET COMPONENTS common io kdtree search surface filters registration sample_consensus segmentation )
ENDIF ()
2018-12-01 22:40:02 -05:00
if ( PCL_COMPILE_OPTIONS )
if ( "${PCL_COMPILE_OPTIONS}" MATCHES "-march=native" )
MESSAGE ( WARNING "PCL compile options contain \" -march=native\ ", make sure all libraries using Eigen are also compiled with that flag to avoid some segmentation faults (with gdb referring to some Eigen functions)." )
else ()
MESSAGE ( STATUS "PCL compile options don't contain \" -march=native\ ", make sure all libraries using Eigen are also compiled without that flag to avoid some segmentation faults (with gdb referring to some Eigen functions)." )
endif ()
2018-03-26 18:06:41 -04:00
else ()
2018-12-01 22:40:02 -05:00
if ( "${PCL_DEFINITIONS}" MATCHES "-march=native" )
MESSAGE ( WARNING "PCL definitions contain \" -march=native\ ", make sure all libraries using Eigen are also compiled with that flag to avoid some segmentation faults (with gdb referring to some Eigen functions)." )
else ()
MESSAGE ( STATUS "PCL definitions don't contain \" -march=native\ ", make sure all libraries using Eigen are also compiled without that flag to avoid some segmentation faults (with gdb referring to some Eigen functions)." )
endif ()
2018-03-26 18:06:41 -04:00
endif ()
2015-10-02 11:23:15 -04:00
FIND_PACKAGE ( ZLIB REQUIRED QUIET )
2016-01-21 17:11:57 -05:00
2018-09-05 14:22:34 -04:00
FIND_PACKAGE ( Sqlite3 QUIET )
IF ( Sqlite3_FOUND )
MESSAGE ( STATUS "Found Sqlite3: ${Sqlite3_INCLUDE_DIRS} ${Sqlite3_LIBRARIES}" )
ENDIF ( Sqlite3_FOUND )
2016-05-04 16:45:19 -04:00
if ( NOT "${PCL_LIBRARIES}" STREQUAL "" )
2017-08-03 16:40:12 -04:00
# fix libproj.so not found on Xenial
2016-05-04 16:45:19 -04:00
list ( REMOVE_ITEM PCL_LIBRARIES "vtkproj4" )
endif ()
2016-01-21 17:11:57 -05:00
# 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" ))
find_package ( OpenMP )
endif ()
if ( OPENMP_FOUND )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}" )
2018-10-11 15:19:20 -04:00
set ( CMAKE_INSTALL_OPENMP_LIBRARIES TRUE )
2016-01-21 17:11:57 -05:00
message ( STATUS "Found OpenMP" )
2016-07-17 21:04:11 -04:00
if ( PCL_OMP )
add_definitions ( -DPCL_OMP )
endif ( PCL_OMP )
2016-01-21 17:11:57 -05:00
else ( OPENMP_FOUND )
message ( STATUS "Not found OpenMP" )
endif ()
2015-10-02 11:23:15 -04:00
IF ( OpenCV_FOUND )
MESSAGE ( STATUS "Found OpenCV: ${OpenCV_INCLUDE_DIRS}" )
ENDIF ( OpenCV_FOUND )
IF ( PCL_FOUND )
MESSAGE ( STATUS "Found PCL: ${PCL_INCLUDE_DIRS}" )
ENDIF ( PCL_FOUND )
IF ( ZLIB_FOUND )
MESSAGE ( STATUS "Found ZLIB: ${ZLIB_INCLUDE_DIRS}" )
ENDIF ( ZLIB_FOUND )
2012-06-24 17:19:34 +00:00
2016-09-27 15:43:23 -04:00
SET ( ADD_VTK_GUI_SUPPORT_QT_TO_CONF FALSE )
2015-08-13 15:12:43 -04:00
IF ( WITH_QT )
2016-05-09 11:17:51 -04:00
FIND_PACKAGE ( VTK )
IF ( NOT VTK_FOUND )
MESSAGE ( FATAL_ERROR "VTK is required when using Qt. Set -DWITH_QT=OFF if you don't want gui tools." )
ENDIF ( NOT VTK_FOUND )
2016-05-04 16:45:19 -04:00
# If Qt is here, the GUI will be built
2016-05-09 11:17:51 -04:00
# look for Qt5 (if vtk>5 is installed) before Qt4
IF ( "${VTK_MAJOR_VERSION}" GREATER 5 )
2019-07-31 10:37:59 -04:00
if ( RTABMAP_QT_VERSION STREQUAL "AUTO" OR RTABMAP_QT_VERSION STREQUAL "5" )
FIND_PACKAGE ( Qt5 COMPONENTS Widgets Core Gui QUIET )
IF ( Qt5_FOUND )
FIND_PACKAGE ( Qt5 COMPONENTS Widgets Core Gui OPTIONAL_COMPONENTS Svg )
ENDIF ( Qt5_FOUND )
ENDIF ( RTABMAP_QT_VERSION STREQUAL "AUTO" OR RTABMAP_QT_VERSION STREQUAL "5" )
2016-05-09 11:17:51 -04:00
ENDIF ( "${VTK_MAJOR_VERSION}" GREATER 5 )
2016-05-04 16:45:19 -04:00
IF ( NOT Qt5_FOUND )
2019-07-31 10:37:59 -04:00
IF ( RTABMAP_QT_VERSION STREQUAL "AUTO" OR RTABMAP_QT_VERSION STREQUAL "4" )
FIND_PACKAGE ( Qt4 COMPONENTS QtCore QtGui OPTIONAL_COMPONENTS QtSvg )
ENDIF ( RTABMAP_QT_VERSION STREQUAL "AUTO" OR RTABMAP_QT_VERSION STREQUAL "4" )
2016-05-04 16:45:19 -04:00
ENDIF ( NOT Qt5_FOUND )
2015-08-13 15:12:43 -04:00
IF ( QT4_FOUND OR Qt5_FOUND )
IF ( "${VTK_MAJOR_VERSION}" EQUAL 5 )
FIND_PACKAGE ( QVTK REQUIRED ) # only for VTK 5
2016-09-27 15:43:23 -04:00
ELSE ()
list ( FIND PCL_LIBRARIES vtkGUISupportQt value )
IF ( value EQUAL -1 )
2018-11-28 14:10:29 -05:00
SET ( PCL_LIBRARIES "${PCL_LIBRARIES};vtkGUISupportQt" )
SET ( ADD_VTK_GUI_SUPPORT_QT_TO_CONF TRUE )
2016-09-27 15:43:23 -04:00
ENDIF ( value EQUAL -1 )
2020-04-03 17:28:23 -04:00
MESSAGE ( STATUS "VTK_RENDERING_BACKEND=${VTK_RENDERING_BACKEND}" )
2019-11-21 04:07:38 +00:00
IF ( VTK_RENDERING_BACKEND STREQUAL "OpenGL2" )
ADD_DEFINITIONS ( "-DVTK_OPENGL2" )
2020-04-03 17:28:23 -04:00
# see issue #525
list ( FIND PCL_LIBRARIES vtkRenderingVolumeOpenGL2 value )
IF ( value EQUAL -1 )
SET ( PCL_LIBRARIES "${PCL_LIBRARIES};vtkRenderingVolumeOpenGL2" )
ENDIF ( value EQUAL -1 )
2019-11-21 04:07:38 +00:00
ELSEIF ( VTK_RENDERING_BACKEND STREQUAL "OpenGL" )
2020-04-03 17:28:23 -04:00
# PCL 1.9 not adding vtkRenderingVolumeOpenGL as dependency anymore, so add it for us
list ( FIND PCL_LIBRARIES vtkRenderingVolumeOpenGL value )
IF ( value EQUAL -1 )
2019-11-21 04:07:38 +00:00
SET ( PCL_LIBRARIES "${PCL_LIBRARIES};vtkRenderingVolumeOpenGL" )
2020-04-03 17:28:23 -04:00
ENDIF ( value EQUAL -1 )
2019-11-21 04:07:38 +00:00
ENDIF ()
2020-04-03 17:28:23 -04:00
2016-09-27 15:43:23 -04:00
ENDIF ()
2018-06-15 12:17:11 -04:00
ADD_DEFINITIONS ( -DQT_NO_KEYWORDS ) # To avoid conflicts with boost signals/foreach and Qt macros
2015-08-13 15:12:43 -04:00
ENDIF ( QT4_FOUND OR Qt5_FOUND )
ENDIF ( WITH_QT )
2021-01-17 01:56:27 -05:00
IF ( WITH_TORCH )
2020-04-16 17:59:45 -04:00
FIND_PACKAGE ( Torch QUIET )
IF ( TORCH_FOUND )
MESSAGE ( STATUS "Found Torch: ${TORCH_INCLUDE_DIRS}" )
ENDIF ( TORCH_FOUND )
2021-01-17 01:56:27 -05:00
ENDIF ( WITH_TORCH )
2020-05-09 21:13:41 -04:00
2021-01-17 01:56:27 -05:00
IF ( WITH_PYTHON )
2020-05-09 21:13:41 -04:00
FIND_PACKAGE ( Python3 COMPONENTS Interpreter Development )
IF ( Python3_FOUND )
MESSAGE ( STATUS "Found Python3" )
ENDIF ( Python3_FOUND )
2021-01-17 01:56:27 -05:00
ENDIF ( WITH_PYTHON )
2020-04-16 17:59:45 -04:00
2021-01-14 15:49:18 -05:00
IF ( WITH_PDAL )
FIND_PACKAGE ( PDAL QUIET )
IF ( PDAL_FOUND )
MESSAGE ( STATUS "Found PDAL ${PDAL_VERSION}: ${PDAL_INCLUDE_DIRS}" )
ENDIF ( PDAL_FOUND )
ENDIF ( WITH_PDAL )
2015-08-13 15:12:43 -04:00
IF ( WITH_FREENECT )
2015-10-02 11:23:15 -04:00
FIND_PACKAGE ( Freenect QUIET )
IF ( Freenect_FOUND )
MESSAGE ( STATUS "Found Freenect: ${Freenect_INCLUDE_DIRS}" )
ENDIF ( Freenect_FOUND )
2015-08-13 15:12:43 -04:00
ENDIF ( WITH_FREENECT )
IF ( WITH_FREENECT2 )
FIND_PACKAGE ( freenect2 QUIET )
2015-10-02 11:23:15 -04:00
IF ( freenect2_FOUND )
2017-05-17 16:59:35 -04:00
IF ( NOT freenect2_INCLUDE_DIRS )
SET ( freenect2_INCLUDE_DIRS ${ freenect2_INCLUDE_DIR } )
ENDIF ( NOT freenect2_INCLUDE_DIRS )
2015-10-02 11:23:15 -04:00
MESSAGE ( STATUS "Found freenect2: ${freenect2_INCLUDE_DIRS}" )
2016-10-31 14:28:17 -04:00
# Explicitly link to OpenCL (in case of CUDA installed)
2017-05-17 16:59:35 -04:00
FIND_PACKAGE ( OpenCL QUIET )
IF ( OpenCL_FOUND )
SET ( freenect2_LIBRARIES
${ OpenCL_LIBRARIES }
${ freenect2_LIBRARIES }
)
ENDIF ( OpenCL_FOUND )
2015-10-02 11:23:15 -04:00
ENDIF ( freenect2_FOUND )
2015-08-13 15:12:43 -04:00
ENDIF ( WITH_FREENECT2 )
2018-05-02 12:46:45 -04:00
IF ( WITH_K4W2 AND WIN32 )
2017-11-06 00:19:12 -05:00
FIND_PACKAGE ( KinectSDK2 QUIET )
IF ( KinectSDK2_FOUND )
MESSAGE ( STATUS "Found Kinect for Windows 2: ${KinectSDK2_INCLUDE_DIRS}" )
ENDIF ( KinectSDK2_FOUND )
2018-05-02 12:46:45 -04:00
ENDIF ( WITH_K4W2 AND WIN32 )
2017-11-06 00:19:12 -05:00
2019-07-09 20:48:09 -04:00
IF ( WITH_K4A )
2019-07-10 12:34:13 -04:00
IF ( WIN32 )
FIND_PACKAGE ( K4A QUIET )
ELSE ()
FIND_PACKAGE ( k4a QUIET )
FIND_PACKAGE ( k4arecord QUIET )
IF ( NOT ( k4a_FOUND AND k4arecord_FOUND ))
SET ( k4a_FOUND FALSE )
ENDIF ( NOT ( k4a_FOUND AND k4arecord_FOUND ))
ENDIF ()
IF ( k4a_FOUND )
MESSAGE ( STATUS "Found Kinect for Azure: ${k4a_INCLUDE_DIRS}" )
ENDIF ( k4a_FOUND )
2019-07-09 20:48:09 -04:00
ENDIF ( WITH_K4A )
2016-04-10 14:52:14 -04:00
# IF PCL depends on OpenNI2 (already found), ignore WITH_OPENNI2
IF ( WITH_OPENNI2 OR OpenNI2_FOUND )
2015-10-02 11:23:15 -04:00
FIND_PACKAGE ( OpenNI2 QUIET )
IF ( OpenNI2_FOUND )
MESSAGE ( STATUS "Found OpenNI2: ${OpenNI2_INCLUDE_DIRS}" )
ENDIF ( OpenNI2_FOUND )
2016-04-10 14:52:14 -04:00
ENDIF ( WITH_OPENNI2 OR OpenNI2_FOUND )
2015-08-13 15:12:43 -04:00
IF ( WITH_DC1394 )
2015-10-02 11:23:15 -04:00
FIND_PACKAGE ( DC1394 QUIET )
IF ( DC1394_FOUND )
MESSAGE ( STATUS "Found DC1394: ${DC1394_INCLUDE_DIRS}" )
ENDIF ( DC1394_FOUND )
2015-08-13 15:12:43 -04:00
ENDIF ( WITH_DC1394 )
IF ( WITH_G2O )
2015-10-02 11:23:15 -04:00
FIND_PACKAGE ( G2O QUIET )
IF ( G2O_FOUND )
MESSAGE ( STATUS "Found g2o: ${G2O_INCLUDE_DIRS}" )
2021-03-02 18:17:09 +00:00
ELSE ()
FIND_PACKAGE ( g2o QUIET )
IF ( g2o_FOUND )
SET ( G2O_FOUND ${ g2o_FOUND } )
SET ( G2O_CPP11 1 )
MESSAGE ( STATUS "Found g2o (targets)" )
ENDIF ( g2o_FOUND )
ENDIF ()
2015-08-13 15:12:43 -04:00
ENDIF ( WITH_G2O )
2015-09-02 17:51:43 -04:00
IF ( WITH_GTSAM )
2018-10-11 14:28:41 -04:00
# Force config mode to ignore PCL's findGTSAM.cmake file
FIND_PACKAGE ( GTSAM CONFIG QUIET )
2015-09-02 17:51:43 -04:00
ENDIF ( WITH_GTSAM )
2015-08-13 15:12:43 -04:00
IF ( WITH_FLYCAPTURE2 )
2015-10-02 11:23:15 -04:00
FIND_PACKAGE ( FlyCapture2 QUIET )
IF ( FlyCapture2_FOUND )
MESSAGE ( STATUS "Found FlyCapture2: ${FlyCapture2_INCLUDE_DIRS}" )
ENDIF ( FlyCapture2_FOUND )
2015-08-13 15:12:43 -04:00
ENDIF ( WITH_FLYCAPTURE2 )
2012-06-24 17:19:34 +00:00
2015-08-15 12:58:29 -04:00
IF ( WITH_CVSBA )
2017-05-17 16:59:35 -04:00
FIND_PACKAGE ( cvsba QUIET )
2015-10-02 11:23:15 -04:00
IF ( cvsba_FOUND )
MESSAGE ( STATUS "Found cvsba: ${cvsba_INCLUDE_DIRS}" )
ENDIF ( cvsba_FOUND )
2015-08-15 12:58:29 -04:00
ENDIF ( WITH_CVSBA )
2012-06-24 17:19:34 +00:00
2017-08-22 16:20:49 -04:00
IF ( WITH_POINTMATCHER )
find_package ( libpointmatcher QUIET )
IF ( libpointmatcher_FOUND )
MESSAGE ( STATUS "Found libpointmatcher: ${libpointmatcher_INCLUDE_DIRS}" )
ENDIF ( libpointmatcher_FOUND )
ENDIF ( WITH_POINTMATCHER )
2020-12-18 17:01:11 -05:00
IF ( libpointmatcher_FOUND OR GTSAM_FOUND )
find_package ( Boost COMPONENTS thread filesystem system program_options date_time REQUIRED )
IF ( Boost_MINOR_VERSION GREATER 47 )
find_package ( Boost COMPONENTS thread filesystem system program_options date_time chrono timer REQUIRED )
ENDIF ( Boost_MINOR_VERSION GREATER 47 )
2021-01-17 15:06:47 -05:00
IF ( WIN32 )
MESSAGE ( STATUS "Boost_LIBRARY_DIRS=${Boost_LIBRARY_DIRS}" )
link_directories ( ${ Boost_LIBRARY_DIRS } )
ENDIF ( WIN32 )
2020-12-18 17:01:11 -05:00
ENDIF ( libpointmatcher_FOUND OR GTSAM_FOUND )
2021-03-27 15:11:20 -04:00
IF ( WITH_CCCORELIB )
find_package ( CCCoreLib QUIET )
IF ( CCCoreLib_FOUND )
MESSAGE ( STATUS "Found CCCoreLib: ${CCCoreLib_INCLUDE_DIRS}" )
ENDIF ( CCCoreLib_FOUND )
ENDIF ( WITH_CCCORELIB )
2018-06-28 11:10:46 -04:00
IF ( WITH_LOAM )
find_package ( loam_velodyne QUIET )
IF ( loam_velodyne_FOUND )
MESSAGE ( STATUS "Found loam_velodyne: ${loam_velodyne_INCLUDE_DIRS}" )
ENDIF ( loam_velodyne_FOUND )
ENDIF ( WITH_LOAM )
2018-02-03 15:43:32 -05:00
SET ( ZED_FOUND FALSE )
2016-05-31 19:09:49 -04:00
IF ( WITH_ZED )
2018-10-31 20:56:34 -04:00
find_package ( ZED 2 QUIET )
2017-05-17 16:59:35 -04:00
IF ( ZED_FOUND )
2016-05-31 19:09:49 -04:00
MESSAGE ( STATUS "Found ZED sdk: ${ZED_INCLUDE_DIRS}" )
2017-05-17 16:59:35 -04:00
## look for CUDA
find_package ( CUDA )
IF ( CUDA_FOUND )
MESSAGE ( STATUS "Found CUDA: ${CUDA_INCLUDE_DIRS}" )
ELSE ()
MESSAGE ( FATAL_ERROR "CUDA is required to build with Zed sdk! Set -DWITH_ZED=OFF if you don't have CUDA." )
ENDIF ()
2016-05-31 19:09:49 -04:00
ENDIF ( ZED_FOUND )
ENDIF ( WITH_ZED )
2021-02-28 10:31:18 -05:00
IF ( WITH_ZEDOC )
find_package ( ZEDOC QUIET )
IF ( ZEDOC_FOUND )
MESSAGE ( STATUS "Found ZED Open Capture: ${ZEDOC_INCLUDE_DIRS}" )
## look for HIDAPI
find_package ( HIDAPI )
IF ( HIDAPI_FOUND )
MESSAGE ( STATUS "Found HIDAPI: ${HIDAPI_INCLUDE_DIRS}" )
ELSE ()
MESSAGE ( FATAL_ERROR "HIDAPI is required to build with Zed Open Capture! Set -DWITH_ZEDOC=OFF if you don't have HIDAPI." )
ENDIF ()
ENDIF ( ZEDOC_FOUND )
ENDIF ( WITH_ZEDOC )
2016-07-26 18:39:34 -04:00
IF ( WITH_REALSENSE )
2017-05-05 16:10:09 -04:00
IF ( WITH_REALSENSE_SLAM )
2017-05-17 16:59:35 -04:00
FIND_PACKAGE ( RealSense QUIET COMPONENTS slam )
ELSE ()
FIND_PACKAGE ( RealSense QUIET )
ENDIF ()
2016-07-26 18:39:34 -04:00
IF ( RealSense_FOUND )
MESSAGE ( STATUS "Found RealSense: ${RealSense_INCLUDE_DIRS}" )
ENDIF ( RealSense_FOUND )
2017-04-21 21:24:23 -04:00
IF ( RealSenseSlam_FOUND )
MESSAGE ( STATUS "Found RealSenseSlam: ${RealSense_INCLUDE_DIRS}" )
ENDIF ( RealSenseSlam_FOUND )
2016-07-26 18:39:34 -04:00
ENDIF ( WITH_REALSENSE )
2018-06-15 12:24:00 -04:00
IF ( WITH_REALSENSE2 )
2018-07-10 13:09:52 -04:00
IF ( WIN32 )
FIND_PACKAGE ( RealSense2 QUIET )
2020-07-02 12:54:43 -04:00
ELSE ()
2018-07-10 13:09:52 -04:00
FIND_PACKAGE ( realsense2 QUIET )
ENDIF ()
2018-06-15 12:24:00 -04:00
IF ( realsense2_FOUND )
MESSAGE ( STATUS "Found RealSense2: ${realsense2_INCLUDE_DIRS}" )
ENDIF ( realsense2_FOUND )
ENDIF ( WITH_REALSENSE2 )
2020-04-30 00:57:47 -04:00
IF ( WITH_MYNTEYE )
FIND_PACKAGE ( mynteye QUIET )
IF ( mynteye_FOUND )
MESSAGE ( STATUS "Found mynteye-s: ${mynteye_INCLUDE_DIRS}" )
ENDIF ( mynteye_FOUND )
ENDIF ( WITH_MYNTEYE )
2021-03-07 12:27:21 -05:00
IF ( WITH_DEPTHAI )
FIND_PACKAGE ( depthai 2 QUIET )
IF ( depthai_FOUND )
MESSAGE ( STATUS "Found depthai-core (targets)" )
ENDIF ( depthai_FOUND )
ENDIF ( WITH_DEPTHAI )
2016-06-28 19:00:44 -04:00
IF ( WITH_OCTOMAP )
2020-04-18 16:03:09 -04:00
FIND_PACKAGE ( octomap QUIET )
IF ( octomap_FOUND )
2020-04-20 09:58:00 -04:00
MESSAGE ( STATUS "Found octomap ${octomap_VERSION}: ${OCTOMAP_INCLUDE_DIRS}" )
IF ( octomap_VERSION VERSION_LESS 1.8 )
2018-02-09 10:53:39 -05:00
ADD_DEFINITIONS ( "-DOCTOMAP_PRE_18" )
2020-04-20 09:58:00 -04:00
ENDIF ( octomap_VERSION VERSION_LESS 1.8 )
2020-04-18 16:03:09 -04:00
ENDIF ( octomap_FOUND )
2016-06-28 19:00:44 -04:00
ENDIF ( WITH_OCTOMAP )
2017-05-05 21:44:06 -04:00
IF ( WITH_CPUTSDF )
2017-05-17 16:59:35 -04:00
FIND_PACKAGE ( CPUTSDF QUIET )
2017-05-05 21:44:06 -04:00
IF ( CPUTSDF_FOUND )
MESSAGE ( STATUS "Found CPUTSDF: ${CPUTSDF_INCLUDE_DIRS}" )
ENDIF ( CPUTSDF_FOUND )
ENDIF ( WITH_CPUTSDF )
2018-03-26 18:06:41 -04:00
IF ( WITH_OPENCHISEL )
2018-03-28 11:04:18 -04:00
find_package ( open_chisel QUIET )
2018-03-26 18:06:41 -04:00
if ( open_chisel_FOUND )
MESSAGE ( STATUS "Found open_chisel: ${open_chisel_INCLUDE_DIRS}" )
endif ( open_chisel_FOUND )
ENDIF ( WITH_OPENCHISEL )
2019-10-24 08:56:23 -04:00
IF ( WITH_ALICE_VISION )
find_package ( AliceVision CONFIG QUIET )
IF ( AliceVision_FOUND )
SET ( CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};/usr/local/lib/cmake/modules" )
find_package ( Geogram REQUIRED QUIET )
2020-11-20 13:42:56 -05:00
add_definitions ( "-DRTABMAP_ALICE_VISION_MAJOR=${AliceVision_VERSION_MAJOR}" )
add_definitions ( "-DRTABMAP_ALICE_VISION_MINOR=${AliceVision_VERSION_MINOR}" )
add_definitions ( "-DRTABMAP_ALICE_VISION_PATCH=${AliceVision_VERSION_PATCH}" )
2019-10-24 08:56:23 -04:00
ENDIF ( AliceVision_FOUND )
ENDIF ( WITH_ALICE_VISION )
2017-05-30 09:27:31 -04:00
IF ( WITH_FOVIS )
FIND_PACKAGE ( libfovis QUIET )
IF ( libfovis_FOUND )
MESSAGE ( STATUS "Found libfovis: ${libfovis_INCLUDE_DIRS}" )
ENDIF ( libfovis_FOUND )
ENDIF ( WITH_FOVIS )
2017-05-30 14:03:46 -04:00
IF ( WITH_VISO2 )
FIND_PACKAGE ( libviso2 QUIET )
IF ( libviso2_FOUND )
MESSAGE ( STATUS "Found libviso2: ${libviso2_INCLUDE_DIRS}" )
ENDIF ( libviso2_FOUND )
ENDIF ( WITH_VISO2 )
2017-05-31 20:57:24 -04:00
IF ( WITH_DVO )
FIND_PACKAGE ( dvo_core QUIET )
IF ( dvo_core_FOUND )
MESSAGE ( STATUS "Found dvo_core: ${dvo_core_INCLUDE_DIRS}" )
ENDIF ( dvo_core_FOUND )
ENDIF ( WITH_DVO )
2017-05-30 14:03:46 -04:00
2018-03-07 19:43:30 -05:00
IF ( WITH_OKVIS )
FIND_PACKAGE ( okvis 1.1 QUIET )
IF ( okvis_FOUND )
MESSAGE ( STATUS "Found okvis: ${OKVIS_INCLUDE_DIRS}" )
find_package ( brisk 2 REQUIRED )
MESSAGE ( STATUS "Found brisk: ${BRISK_INCLUDE_DIRS}" )
find_package ( opengv REQUIRED )
MESSAGE ( STATUS "Found opengv: ${OPENGV_INCLUDE_DIRS}" )
2019-03-20 12:58:06 -04:00
find_package ( Ceres 1.9.0 REQUIRED EXACT ) # OKVIS requires this specific version
MESSAGE ( STATUS "Found ceres ${Ceres_VERSION}: ${CERES_INCLUDE_DIRS}" )
2018-03-07 19:43:30 -05:00
ENDIF ( okvis_FOUND )
ENDIF ( WITH_OKVIS )
2019-08-17 03:55:04 -04:00
# If built with okvis, we found already ceres above
IF ( NOT okvis_FOUND AND WITH_CERES )
FIND_PACKAGE ( Ceres QUIET )
ENDIF ( NOT okvis_FOUND AND WITH_CERES )
2018-07-14 20:40:44 -04:00
IF ( WITH_MSCKF_VIO )
FIND_PACKAGE ( msckf_vio QUIET )
IF ( msckf_vio_FOUND )
MESSAGE ( STATUS "Found msckf_vio: ${msckf_vio_INCLUDE_DIRS}" )
ENDIF ( msckf_vio_FOUND )
ENDIF ( WITH_MSCKF_VIO )
2019-03-20 12:58:06 -04:00
IF ( WITH_VINS )
2019-03-18 20:45:34 -04:00
FIND_PACKAGE ( vins QUIET )
IF ( vins_FOUND )
MESSAGE ( STATUS "Found vins: ${vins_INCLUDE_DIRS}" )
2019-03-20 12:58:06 -04:00
IF ( okvis_FOUND )
MESSAGE ( WARNING "VINS and OKVIS will be both linked to project, make sure VINS has been built with against same Ceres version than OKVIS to avoid some crashes." )
ENDIF ( okvis_FOUND )
2019-03-18 20:45:34 -04:00
ENDIF ( vins_FOUND )
2019-03-20 12:58:06 -04:00
ENDIF ( WITH_VINS )
2019-03-18 20:45:34 -04:00
2021-03-28 23:51:02 -04:00
IF ( WITH_OPENVINS )
FIND_PACKAGE ( ov_msckf QUIET )
IF ( ov_msckf_FOUND )
MESSAGE ( STATUS "Found ov_msckf: ${ov_msckf_INCLUDE_DIRS}" )
ENDIF ( ov_msckf_FOUND )
ENDIF ( WITH_OPENVINS )
2019-08-14 12:09:56 -04:00
IF ( WITH_FASTCV )
FIND_PACKAGE ( FastCV QUIET )
IF ( FastCV_FOUND )
MESSAGE ( STATUS "Found FastCV: ${FastCV_INCLUDE_DIRS}" )
ENDIF ( FastCV_FOUND )
ENDIF ( WITH_FASTCV )
2018-07-14 20:40:44 -04:00
2021-03-09 16:00:41 -05:00
IF ( WITH_ORB_SLAM AND NOT G2O_FOUND )
FIND_PACKAGE ( ORB_SLAM QUIET )
IF ( ORB_SLAM_FOUND )
MESSAGE ( STATUS "Found ORB_SLAM${ORB_SLAM_VERSION}: ${ORB_SLAM_INCLUDE_DIRS}" )
ENDIF ( ORB_SLAM_FOUND )
ENDIF ( WITH_ORB_SLAM AND NOT G2O_FOUND )
2017-06-05 19:04:23 -04:00
2021-01-20 22:54:48 -05:00
IF ( NOT MSVC )
2021-03-27 15:11:20 -04:00
IF ( loam_velodyne_FOUND OR PCL_VERSION VERSION_GREATER "1.9.1" OR TORCH_FOUND OR G2O_FOUND OR CCCoreLib_FOUND )
#LOAM, PCL>=1.10, latest g2o and CCCoreLib require c++14
2021-01-20 22:54:48 -05:00
include ( CheckCXXCompilerFlag )
CHECK_CXX_COMPILER_FLAG ( "-std=c++14" COMPILER_SUPPORTS_CXX14 )
IF ( COMPILER_SUPPORTS_CXX14 )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14" )
set ( CMAKE_CXX_STANDARD 14 )
ELSE ()
message ( STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++14 support. Please use a different C++ compiler if you want to use LOAM, latest PCL or g2o." )
ENDIF ()
2021-03-27 15:11:20 -04:00
ENDIF ( loam_velodyne_FOUND OR PCL_VERSION VERSION_GREATER "1.9.1" OR TORCH_FOUND OR G2O_FOUND OR CCCoreLib_FOUND )
2021-01-20 22:54:48 -05:00
IF ( ( NOT ( ${ CMAKE_CXX_STANDARD } STREQUAL "14" )) AND (
G2O_FOUND OR
GTSAM_FOUND OR
CERES_FOUND OR
ZED_FOUND OR
2021-02-28 10:31:18 -05:00
ZEDOC_FOUND OR
2021-01-20 22:54:48 -05:00
ANDROID OR
RealSense_FOUND OR
realsense2_FOUND OR
2021-03-09 16:00:41 -05:00
ORB_SLAM_FOUND OR
2021-01-20 22:54:48 -05:00
okvis_FOUND OR
open_chisel_FOUND OR
msckf_vio_FOUND OR
vins_FOUND OR
2021-03-28 23:51:02 -04:00
ov_msckf_FOUND OR
2021-01-20 22:54:48 -05:00
libpointmatcher_FOUND ))
#Newest versions require std11
include ( CheckCXXCompilerFlag )
CHECK_CXX_COMPILER_FLAG ( "-std=c++11" COMPILER_SUPPORTS_CXX11 )
CHECK_CXX_COMPILER_FLAG ( "-std=c++0x" COMPILER_SUPPORTS_CXX0X )
IF ( COMPILER_SUPPORTS_CXX11 )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
ELSEIF ( COMPILER_SUPPORTS_CXX0X )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x" )
ELSE ()
message ( STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler." )
ENDIF ()
ENDIF ()
2018-07-03 10:13:22 -04:00
ENDIF ()
2016-05-31 20:19:04 -04:00
2011-06-05 14:45:39 +00:00
####### OSX BUNDLE CMAKE_INSTALL_PREFIX #######
IF ( APPLE AND BUILD_AS_BUNDLE )
2015-03-26 06:58:31 -04:00
IF ( Qt5_FOUND OR ( QT4_FOUND AND QT_QTCORE_FOUND AND QT_QTGUI_FOUND ))
2014-08-28 22:32:09 +00:00
2011-06-05 14:45:39 +00:00
# Required when packaging, and set CMAKE_INSTALL_PREFIX to "/".
2012-12-11 18:05:05 +00:00
SET ( CMAKE_INSTALL_PREFIX "/" )
2011-06-05 14:45:39 +00:00
SET ( CPACK_SET_DESTDIR TRUE )
2014-08-29 00:45:50 +00:00
SET ( CMAKE_BUNDLE_NAME "${PROJECT_NAME}" )
2011-06-05 14:45:39 +00:00
SET ( CMAKE_BUNDLE_LOCATION "${CMAKE_INSTALL_PREFIX}" )
# make sure CMAKE_INSTALL_PREFIX ends in /
STRING ( LENGTH "${CMAKE_INSTALL_PREFIX}" LEN )
MATH ( EXPR LEN "${LEN} -1" )
STRING ( SUBSTRING "${CMAKE_INSTALL_PREFIX}" ${ LEN } 1 ENDCH )
IF ( NOT "${ENDCH}" STREQUAL "/" )
SET ( CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/" )
ENDIF ( NOT "${ENDCH}" STREQUAL "/" )
SET ( CMAKE_INSTALL_PREFIX
"${CMAKE_INSTALL_PREFIX}${CMAKE_BUNDLE_NAME}.app/Contents" )
ELSE ()
#If Qt is not here, no need to build a bundle
SET ( BUILD_AS_BUNDLE OFF )
ENDIF ()
ENDIF ( APPLE AND BUILD_AS_BUNDLE )
####### SOURCES (Projects) #######
2016-06-01 13:13:30 -04:00
# CONF_DEPENDENCIES contains only dependencies not required by the headers
SET ( CONF_DEPENDENCIES
2017-05-17 16:59:35 -04:00
${ ZLIB_LIBRARIES }
2016-06-01 13:13:30 -04:00
)
2020-05-25 17:29:22 -04:00
# OpenCV2 has nonfree if OPENCV_NONFREE_FOUND
# OpenCV<=3.4.2 has nonfree if OPENCV_XFEATURES2D_FOUND
# OpenCV>3.4.2 has nonfree if OPENCV_XFEATURES2D_FOUND and OPENCV_ENABLE_NONFREE is defined
2016-03-01 14:25:00 -05:00
IF ( NOT ( OPENCV_NONFREE_FOUND OR OPENCV_XFEATURES2D_FOUND ))
SET ( NONFREE "//" )
2018-11-02 11:52:35 -04:00
ELSEIF ( OpenCV_VERSION VERSION_GREATER "3.4.2" )
FIND_FILE ( OpenCV_MODULES_HPP opencv2/opencv_modules.hpp
PATHS ${ OpenCV_INCLUDE_DIRS }
NO_DEFAULT_PATH )
FILE ( READ ${ OpenCV_MODULES_HPP } TMPTXT )
STRING ( FIND "${TMPTXT}" "#define OPENCV_ENABLE_NONFREE" matchres )
IF ( ${ matchres } EQUAL -1 )
SET ( NONFREE "//" )
ENDIF ( ${ matchres } EQUAL -1 )
ENDIF ()
2016-03-01 14:25:00 -05:00
IF ( NOT G2O_FOUND )
SET ( G2O "//" )
2016-06-01 13:13:30 -04:00
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ G2O_LIBRARIES } )
2018-02-03 15:43:32 -05:00
IF ( NOT G2O_CPP11 )
SET ( G2O_CPP_CONF "//" )
ENDIF ( NOT G2O_CPP11 )
2016-06-01 13:13:30 -04:00
ENDIF ()
2016-03-01 14:25:00 -05:00
IF ( NOT GTSAM_FOUND )
SET ( GTSAM "//" )
2016-06-01 13:13:30 -04:00
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ GTSAM_LIBRARIES } )
ENDIF ()
2019-08-17 03:55:04 -04:00
IF ( NOT CERES_FOUND )
SET ( CERES "//" )
ENDIF ( NOT CERES_FOUND )
2016-03-01 14:25:00 -05:00
IF ( NOT WITH_TORO )
SET ( TORO "//" )
ENDIF ( NOT WITH_TORO )
IF ( NOT WITH_VERTIGO )
SET ( VERTIGO "//" )
ENDIF ( NOT WITH_VERTIGO )
IF ( NOT cvsba_FOUND )
SET ( CVSBA "//" )
2016-06-01 13:13:30 -04:00
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ cvsba_LIBRARIES } )
ENDIF ()
2017-08-22 16:20:49 -04:00
IF ( NOT libpointmatcher_FOUND )
SET ( POINTMATCHER "//" )
ENDIF ( NOT libpointmatcher_FOUND )
2021-03-27 15:11:20 -04:00
IF ( NOT CCCoreLib_FOUND )
SET ( CCCORELIB "//" )
ENDIF ( NOT CCCoreLib_FOUND )
2019-08-14 12:09:56 -04:00
IF ( NOT FastCV_FOUND )
SET ( FASTCV "//" )
ENDIF ( NOT FastCV_FOUND )
2021-01-14 15:49:18 -05:00
IF ( NOT PDAL_FOUND )
SET ( PDAL "//" )
ENDIF ( NOT PDAL_FOUND )
2018-06-28 11:10:46 -04:00
IF ( NOT loam_velodyne_FOUND )
SET ( LOAM "//" )
ENDIF ( NOT loam_velodyne_FOUND )
2016-03-01 14:25:00 -05:00
IF ( NOT Freenect_FOUND )
SET ( FREENECT "//" )
2016-06-01 13:13:30 -04:00
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ Freenect_LIBRARIES } )
ENDIF ()
2016-03-01 14:25:00 -05:00
IF ( NOT freenect2_FOUND )
SET ( FREENECT2 "//" )
2016-06-01 13:13:30 -04:00
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ freenect2_LIBRARIES } )
ENDIF ()
2017-11-06 00:19:12 -05:00
IF ( NOT KinectSDK2_FOUND )
SET ( K4W2 "//" )
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ KinectSDK2_LIBRARIES } )
ENDIF ()
2019-07-10 12:34:13 -04:00
IF ( NOT k4a_FOUND )
2019-07-09 20:48:09 -04:00
SET ( K4A "//" )
ELSE ()
2019-07-10 12:34:13 -04:00
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ k4a_LIBRARIES } )
2019-07-09 20:48:09 -04:00
ENDIF ()
2016-03-01 14:25:00 -05:00
IF ( NOT OpenNI2_FOUND )
SET ( OPENNI2 "//" )
2016-06-01 13:13:30 -04:00
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ OpenNI2_LIBRARIES } )
ENDIF ()
2016-03-01 14:25:00 -05:00
IF ( NOT DC1394_FOUND )
SET ( DC1394 "//" )
2016-06-01 13:13:30 -04:00
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ DC1394_LIBRARIES } )
ENDIF ()
2016-03-01 14:25:00 -05:00
IF ( NOT FlyCapture2_FOUND )
SET ( FLYCAPTURE2 "//" )
2016-06-01 13:13:30 -04:00
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ FlyCapture2_LIBRARIES } )
ENDIF ()
2016-05-31 19:09:49 -04:00
IF ( NOT ZED_FOUND )
SET ( ZED "//" )
2016-06-01 13:13:30 -04:00
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ ZED_LIBRARIES } ${ CUDA_LIBRARIES } )
ENDIF ()
2021-02-28 10:31:18 -05:00
IF ( NOT ZEDOC_FOUND )
SET ( ZEDOC "//" )
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ ZEDOC_LIBRARIES } )
ENDIF ()
2016-07-26 18:39:34 -04:00
IF ( NOT RealSense_FOUND )
SET ( REALSENSE "//" )
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ RealSense_LIBRARIES } )
ENDIF ()
2017-04-21 21:58:38 -04:00
IF ( NOT RealSenseSlam_FOUND )
SET ( REALSENSESLAM "//" )
ENDIF ( NOT RealSenseSlam_FOUND )
2018-06-15 12:24:00 -04:00
IF ( NOT realsense2_FOUND )
SET ( REALSENSE2 "//" )
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ realsense2_LIBRARIES } )
ENDIF ()
2020-04-30 00:57:47 -04:00
IF ( NOT mynteye_FOUND )
SET ( MYNTEYE "//" )
ENDIF ( NOT mynteye_FOUND )
2021-03-07 12:27:21 -05:00
IF ( NOT depthai_FOUND )
SET ( DEPTHAI "//" )
ENDIF ( NOT depthai_FOUND )
2020-04-18 16:03:09 -04:00
IF ( NOT octomap_FOUND )
2016-06-28 19:00:44 -04:00
SET ( OCTOMAP "//" )
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ OCTOMAP_LIBRARIES } )
ENDIF ()
2017-05-05 21:44:06 -04:00
IF ( NOT CPUTSDF_FOUND )
SET ( CPUTSDF "//" )
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ CPUTSDF_LIBRARIES } )
ENDIF ()
2018-03-26 18:06:41 -04:00
IF ( NOT open_chisel_FOUND )
SET ( OPENCHISEL "//" )
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ open_chisel_LIBRARIES } )
ENDIF ()
2019-10-24 08:56:23 -04:00
IF ( NOT AliceVision_FOUND )
SET ( ALICE_VISION "//" )
ENDIF ( NOT AliceVision_FOUND )
2017-05-30 09:27:31 -04:00
IF ( NOT libfovis_FOUND )
SET ( FOVIS "//" )
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ libfovis_LIBRARIES } )
ENDIF ()
2017-05-30 14:03:46 -04:00
IF ( NOT libviso2_FOUND )
SET ( VISO2 "//" )
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ libviso2_LIBRARIES } )
ENDIF ()
2017-05-31 20:57:24 -04:00
IF ( NOT dvo_core_FOUND )
SET ( DVO "//" )
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ dvo_core_LIBRARIES } )
ENDIF ()
2018-03-07 19:43:30 -05:00
IF ( NOT okvis_FOUND )
SET ( OKVIS "//" )
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ OKVIS_LIBRARIES } )
ENDIF ()
2018-07-14 20:40:44 -04:00
IF ( NOT msckf_vio_FOUND )
SET ( MSCKF_VIO "//" )
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ msckf_vio_LIBRARIES } )
ENDIF ()
2019-03-18 20:45:34 -04:00
IF ( NOT vins_FOUND )
SET ( VINS "//" )
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ vins_LIBRARIES } )
ENDIF ()
2021-03-28 23:51:02 -04:00
IF ( NOT ov_msckf_FOUND )
SET ( OPENVINS "//" )
ELSE ()
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ ov_msckf_LIBRARIES } )
ENDIF ()
2021-03-09 16:00:41 -05:00
IF ( NOT ORB_SLAM_FOUND )
SET ( ORB_SLAM "//" )
2017-06-05 19:04:23 -04:00
ELSE ()
2021-03-09 16:00:41 -05:00
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ ORB_SLAM_LIBRARIES } )
2017-06-05 19:04:23 -04:00
ENDIF ()
2019-04-18 19:50:58 -04:00
IF ( NOT WITH_ORB_OCTREE )
SET ( ORB_OCTREE "//" )
ENDIF ()
2020-04-16 17:59:45 -04:00
IF ( NOT TORCH_FOUND )
2021-01-17 01:56:27 -05:00
SET ( TORCH "//" )
2020-05-09 21:13:41 -04:00
ENDIF ()
IF ( NOT Python3_FOUND )
2021-01-17 01:56:27 -05:00
SET ( PYTHON "//" )
2020-04-16 17:59:45 -04:00
ENDIF ()
2016-09-27 15:43:23 -04:00
IF ( ADD_VTK_GUI_SUPPORT_QT_TO_CONF )
2016-09-29 12:40:51 -04:00
SET ( CONF_VTK_QT true )
2016-09-27 15:43:23 -04:00
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } vtkGUISupportQt )
2016-09-29 12:40:51 -04:00
ELSE ()
SET ( CONF_VTK_QT false )
ENDIF ()
2017-10-16 16:00:52 +02:00
IF ( VTK_USE_QVTK )
SET ( CONF_DEPENDENCIES ${ CONF_DEPENDENCIES } ${ QVTK_LIBRARY } )
ENDIF ( VTK_USE_QVTK )
2019-05-07 18:57:53 -04:00
IF ( NOT WITH_MADGWICK )
SET ( MADGWICK "//" )
ENDIF ()
2017-10-16 16:00:52 +02:00
2014-11-21 23:37:23 +00:00
CONFIGURE_FILE ( Version.h.in ${ PROJECT_SOURCE_DIR } /corelib/include/ ${ PROJECT_PREFIX } /core/Version.h )
2013-04-30 20:16:01 +00:00
ADD_SUBDIRECTORY ( utilite )
2011-06-05 14:45:39 +00:00
ADD_SUBDIRECTORY ( corelib )
2016-02-15 19:35:24 -05:00
IF ( ANDROID )
IF ( BUILD_APP )
ADD_SUBDIRECTORY ( app )
ENDIF ( BUILD_APP )
ELSEIF ( Qt5_FOUND OR ( QT4_FOUND AND QT_QTCORE_FOUND AND QT_QTGUI_FOUND ))
2011-06-05 14:45:39 +00:00
ADD_SUBDIRECTORY ( guilib )
2016-01-21 17:11:57 -05:00
IF ( BUILD_APP )
ADD_SUBDIRECTORY ( app )
ENDIF ( BUILD_APP )
2015-08-13 15:12:43 -04:00
ELSEIF ( WITH_QT )
MESSAGE ( WARNING "Qt not found, the GUI lib and the stand-alone application will not be compiled..." )
2011-06-05 14:45:39 +00:00
ENDIF ()
2016-01-21 17:11:57 -05:00
IF ( BUILD_TOOLS )
ADD_SUBDIRECTORY ( tools )
ENDIF ( BUILD_TOOLS )
IF ( BUILD_EXAMPLES )
ADD_SUBDIRECTORY ( examples )
ENDIF ( BUILD_EXAMPLES )
2012-06-24 17:19:34 +00:00
2011-06-05 14:45:39 +00:00
#######################
# Uninstall target, for "make uninstall"
#######################
CONFIGURE_FILE (
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY )
ADD_CUSTOM_TARGET ( uninstall
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" )
2013-12-11 00:12:44 +00:00
####
# Setup RTABMapConfig.cmake
####
# Create the RTABMapConfig.cmake and RTABMapConfigVersion files
2013-12-13 00:51:48 +00:00
file ( RELATIVE_PATH REL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_CMAKE_DIR}" "${CMAKE_INSTALL_PREFIX}/${INSTALL_INCLUDE_DIR}" )
2014-12-17 17:28:21 +01:00
file ( RELATIVE_PATH REL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_CMAKE_DIR}" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}" )
2013-12-13 00:51:48 +00:00
2013-12-11 00:12:44 +00:00
# ... for the build tree
2013-12-13 00:51:48 +00:00
set ( CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/corelib/include"
2017-05-17 16:59:35 -04:00
"${PROJECT_SOURCE_DIR}/guilib/include"
"${PROJECT_SOURCE_DIR}/utilite/include" )
2016-03-23 19:07:44 -04:00
set ( CONF_LIB_DIR "${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" )
2016-01-21 17:11:57 -05:00
IF ( QT4_FOUND OR Qt5_FOUND )
set ( CONF_WITH_GUI ON )
2016-05-09 11:17:51 -04:00
IF ( QT4_FOUND )
set ( CONF_QT_VERSION 4 )
ELSE ()
set ( CONF_QT_VERSION 5 )
ENDIF ()
2016-01-21 17:11:57 -05:00
ELSE ()
set ( CONF_WITH_GUI OFF )
ENDIF ()
2013-12-11 00:12:44 +00:00
configure_file ( RTABMapConfig.cmake.in
"${PROJECT_BINARY_DIR}/RTABMapConfig.cmake" @ONLY )
2013-12-13 00:51:48 +00:00
2013-12-11 00:12:44 +00:00
# ... for the install tree
set ( CONF_INCLUDE_DIRS "\${RTABMap_CMAKE_DIR}/${REL_INCLUDE_DIR}" )
2013-12-13 00:51:48 +00:00
set ( CONF_LIB_DIR "\${RTABMap_CMAKE_DIR}/${REL_LIB_DIR}" )
2013-12-11 00:12:44 +00:00
configure_file ( RTABMapConfig.cmake.in
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/RTABMapConfig.cmake" @ONLY )
2013-12-13 00:51:48 +00:00
2013-12-11 00:12:44 +00:00
# ... for both
configure_file ( RTABMapConfigVersion.cmake.in
"${PROJECT_BINARY_DIR}/RTABMapConfigVersion.cmake" @ONLY )
# Install the RTABMapConfig.cmake and RTABMapConfigVersion.cmake
install ( FILES
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/RTABMapConfig.cmake"
"${PROJECT_BINARY_DIR}/RTABMapConfigVersion.cmake"
DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT devel )
####
2011-06-05 14:45:39 +00:00
2014-11-25 15:00:46 -05:00
### Install package.xml for catkin
2014-12-20 14:14:35 -05:00
install ( FILES package.xml DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_PREFIX}" )
2014-11-25 15:00:46 -05:00
2011-06-05 14:45:39 +00:00
#######################
# CPACK (Packaging)
#######################
2018-10-11 15:19:20 -04:00
IF ( BUILD_AS_BUNDLE )
INCLUDE ( InstallRequiredSystemLibraries )
ENDIF ( BUILD_AS_BUNDLE )
2011-06-05 14:45:39 +00:00
SET ( CPACK_PACKAGE_NAME "${PROJECT_NAME}" )
SET ( CPACK_PACKAGE_VENDOR "${PROJECT_NAME} project" )
2012-03-03 01:46:30 +00:00
SET ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "RTAB-MAP is a Real-Time Appearance-Based Mapping approach." )
2011-06-05 14:45:39 +00:00
#SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/Description.txt")
#SET(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/README.txt")
SET ( CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}" )
SET ( CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}" )
SET ( CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}" )
#SET(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME}${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
#SET(CPACK_PACKAGE_EXECUTABLES "")
#SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
SET ( CPACK_PACKAGE_CONTACT "matlabbe@gmail.com" )
set ( CPACK_SOURCE_IGNORE_FILES
"\\\\.svn/"
2014-06-11 16:10:58 +00:00
"\\\\.settings/"
2011-06-05 14:45:39 +00:00
"${PROJECT_SOURCE_DIR}/build/[a-zA-Z0-9_]+"
"~$"
"${PROJECT_SOURCE_DIR}/bin/.*${PROJECT_PREFIX}"
"${PROJECT_SOURCE_DIR}/bin/.*${PROJECT_NAME}"
"${PROJECT_SOURCE_DIR}/bin/.*[tT]est"
"${PROJECT_SOURCE_DIR}/bin/.*[eE]xample"
2013-12-11 01:39:24 +00:00
"${PROJECT_SOURCE_DIR}/bin/.*uresourcegenerator"
2011-06-05 14:45:39 +00:00
"\\\\.DS_Store"
)
IF ( WIN32 )
2014-08-11 17:00:55 +00:00
SET ( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE" )
2014-06-17 02:38:41 +00:00
IF ( CMAKE_CL_64 )
SET ( CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64" )
ELSE ()
SET ( CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES" )
ENDIF ()
2018-09-04 15:44:37 -04:00
IF ( BUILD_AS_BUNDLE )
SET ( CPACK_GENERATOR "ZIP;NSIS" )
ELSE ()
SET ( CPACK_GENERATOR "ZIP" )
ENDIF ()
2011-06-05 14:45:39 +00:00
SET ( CPACK_SOURCE_GENERATOR "ZIP" )
2015-07-27 11:04:48 -04:00
SET ( CPACK_NSIS_PACKAGE_NAME "${PROJECT_NAME}" )
2011-06-21 17:19:45 +00:00
SET ( ICON_PATH "${PROJECT_SOURCE_DIR}/app/src/${PROJECT_NAME}.ico" )
2011-06-05 14:45:39 +00:00
SET ( CPACK_NSIS_MUI_ICON ${ ICON_PATH } )
SET ( CPACK_NSIS_MUI_UNIICON ${ ICON_PATH } )
2015-07-27 11:04:48 -04:00
SET ( CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME}" )
2011-06-05 14:45:39 +00:00
#SET(CPACK_PACKAGE_ICON ${ICON_PATH})
#SET(CPACK_NSIS_INSTALLED_ICON_NAME ${ICON_PATH})
#SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\www.${PROJECT_PREFIX}.googlecode.com")
#SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.${PROJECT_PREFIX}.googlecode.com")
SET ( CPACK_NSIS_DISPLAY_NAME "${PROJECT_NAME}" )
SET ( CPACK_NSIS_CONTACT ${ CPACK_PACKAGE_CONTACT } )
# Set the icon used for the Windows "Add or Remove Programs" tool.
SET ( CPACK_NSIS_INSTALLED_ICON_NAME bin\\\\ ${ PROJECT_NAME } .exe )
# Desktop link ("executableName" "linkName")
SET ( CPACK_PACKAGE_EXECUTABLES "${PROJECT_NAME}" "${PROJECT_NAME}" ${ CPACK_PACKAGE_EXECUTABLES } )
SET ( CPACK_CREATE_DESKTOP_LINKS "${PROJECT_NAME}" ${ CPACK_CREATE_DESKTOP_LINKS } )
SET ( CPACK_NSIS_MODIFY_PATH ON )
ELSEIF ( APPLE )
2011-06-21 17:19:45 +00:00
# The project is created as a bundle over the main app (see ./app/src).
2011-06-05 14:45:39 +00:00
# Here we package only this bundle. Note that we set
# CMAKE_INSTALL_PREFIX to "/" when packaging...
IF ( BUILD_AS_BUNDLE )
SET ( CPACK_GENERATOR "DragNDrop" )
ELSE ()
SET ( CPACK_GENERATOR "PackageMaker;TBZ2" )
ENDIF ()
2014-06-11 15:55:59 +00:00
SET ( CPACK_SOURCE_GENERATOR "ZIP" )
2011-06-05 14:45:39 +00:00
2011-06-21 17:19:45 +00:00
SET ( CPACK_PACKAGE_ICON "${PROJECT_SOURCE_DIR}/app/src/${PROJECT_NAME}.icns" )
2011-06-05 14:45:39 +00:00
ELSE ()
2014-08-11 17:00:55 +00:00
SET ( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE" )
2013-12-11 01:39:24 +00:00
SET ( CPACK_GENERATOR "TBZ2" )
2014-06-11 15:55:59 +00:00
SET ( CPACK_SOURCE_GENERATOR "ZIP" )
2011-06-05 14:45:39 +00:00
ENDIF ()
INCLUDE ( CPack )
MESSAGE ( STATUS "--------------------------------------------" )
MESSAGE ( STATUS "Info :" )
2021-04-02 19:06:03 -04:00
MESSAGE ( STATUS " RTAB-Map Version = ${RTABMAP_VERSION}" )
MESSAGE ( STATUS " CMAKE_VERSION = ${CMAKE_VERSION}" )
2011-06-05 14:45:39 +00:00
MESSAGE ( STATUS " CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}" )
2016-03-23 19:56:45 -04:00
MESSAGE ( STATUS " CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}" )
MESSAGE ( STATUS " CMAKE_INSTALL_LIBDIR = ${CMAKE_INSTALL_LIBDIR}" )
MESSAGE ( STATUS " BUILD_APP = ${BUILD_APP}" )
MESSAGE ( STATUS " BUILD_TOOLS = ${BUILD_TOOLS}" )
MESSAGE ( STATUS " BUILD_EXAMPLES = ${BUILD_EXAMPLES}" )
2012-06-24 17:19:34 +00:00
IF ( NOT WIN32 )
2017-05-17 16:59:35 -04:00
# see comment above for the BUILD_SHARED_LIBS option on Windows
MESSAGE ( STATUS " BUILD_SHARED_LIBS = ${BUILD_SHARED_LIBS}" )
2012-06-24 17:19:34 +00:00
ENDIF ( NOT WIN32 )
2018-09-04 15:44:37 -04:00
IF ( APPLE OR WIN32 )
2016-03-23 19:56:45 -04:00
MESSAGE ( STATUS " BUILD_AS_BUNDLE = ${BUILD_AS_BUNDLE}" )
2018-09-04 15:44:37 -04:00
ENDIF ( APPLE OR WIN32 )
2016-01-11 17:21:06 -05:00
MESSAGE ( STATUS " CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}" )
2019-02-07 20:52:20 -05:00
MESSAGE ( STATUS " FLANN_KDTREE_MEM_OPT = ${FLANN_KDTREE_MEM_OPT}" )
2018-03-26 18:06:41 -04:00
MESSAGE ( STATUS " PCL_DEFINITIONS = ${PCL_DEFINITIONS}" )
2019-08-17 03:55:04 -04:00
MESSAGE ( STATUS " PCL_VERSION = ${PCL_VERSION}" )
2018-12-01 22:40:02 -05:00
IF ( PCL_COMPILE_OPTIONS )
MESSAGE ( STATUS " PCL_COMPILE_OPTIONS = ${PCL_COMPILE_OPTIONS}" )
ENDIF ( PCL_COMPILE_OPTIONS )
2014-06-13 23:44:38 +00:00
2019-08-17 03:55:04 -04:00
MESSAGE ( STATUS "" )
2018-09-18 17:00:37 -04:00
MESSAGE ( STATUS "Optional dependencies ('*' affects some default parameters) :" )
2015-06-19 18:12:52 -04:00
IF ( OpenCV_FOUND )
IF ( OpenCV_VERSION_MAJOR EQUAL 2 )
IF ( OPENCV_NONFREE_FOUND )
2018-09-18 17:00:37 -04:00
MESSAGE ( STATUS " *With OpenCV 2 nonfree module (SIFT/SURF) = YES (License: Non commercial)" )
2015-06-19 18:12:52 -04:00
ELSE ()
2018-09-18 17:00:37 -04:00
MESSAGE ( STATUS " *With OpenCV 2 nonfree module (SIFT/SURF) = NO (not found, License: BSD)" )
2015-06-19 18:12:52 -04:00
ENDIF ()
ELSE ()
2020-05-25 17:29:22 -04:00
IF ( OPENCV_XFEATURES2D_FOUND )
IF ( NONFREE STREQUAL "//" )
2021-02-21 13:03:19 -05:00
IF (( OpenCV_VERSION_MAJOR LESS 4 ) OR (( OpenCV_VERSION_MAJOR EQUAL 4 ) AND ( OpenCV_VERSION_MINOR LESS 5 )))
MESSAGE ( STATUS " *With OpenCV ${OpenCV_VERSION} xfeatures2d = YES, nonfree = NO (License: BSD)" )
ELSE ()
MESSAGE ( STATUS " *With OpenCV ${OpenCV_VERSION} xfeatures2d = YES, nonfree = NO (License: Apache 2)" )
ENDIF ()
2020-05-09 21:13:41 -04:00
ELSE ()
2020-05-25 17:29:22 -04:00
MESSAGE ( STATUS " *With OpenCV ${OpenCV_VERSION} xfeatures2d = YES, nonfree = YES (License: Non commercial)" )
2020-05-09 21:13:41 -04:00
ENDIF ()
2015-06-19 18:12:52 -04:00
ELSE ()
2021-02-21 13:03:19 -05:00
IF (( OpenCV_VERSION_MAJOR LESS 4 ) OR (( OpenCV_VERSION_MAJOR EQUAL 4 ) AND ( OpenCV_VERSION_MINOR LESS 5 )))
MESSAGE ( STATUS " *With OpenCV ${OpenCV_VERSION} xfeatures2d = NO, nonfree = NO (License: BSD)" )
ELSE ()
MESSAGE ( STATUS " *With OpenCV ${OpenCV_VERSION} xfeatures2d = NO, nonfree = NO (License: Apache 2)" )
ENDIF ()
2015-06-19 18:12:52 -04:00
ENDIF ()
ENDIF ()
ENDIF ( OpenCV_FOUND )
2014-11-21 23:37:23 +00:00
2019-08-17 03:55:04 -04:00
IF ( QT4_FOUND )
MESSAGE ( STATUS " With Qt4 = YES (License: Open Source or Commercial)" )
MESSAGE ( STATUS " With VTK ${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION} = YES (License: BSD)" )
ELSEIF ( Qt5_FOUND )
2020-05-27 16:35:33 -04:00
MESSAGE ( STATUS " With Qt ${Qt5_VERSION} = YES (License: Open Source or Commercial)" )
2019-08-17 03:55:04 -04:00
MESSAGE ( STATUS " With VTK ${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION} = YES (License: BSD)" )
ELSEIF ( NOT WITH_QT )
MESSAGE ( STATUS " With Qt = NO (WITH_QT=OFF)" )
2019-08-14 12:09:56 -04:00
ELSE ()
2019-08-17 03:55:04 -04:00
MESSAGE ( STATUS " With Qt = NO (Qt not found)" )
2019-08-14 12:09:56 -04:00
ENDIF ()
2018-09-05 15:03:50 -04:00
IF ( Sqlite3_FOUND )
MESSAGE ( STATUS " With external SQLite3 = YES (License: Public Domain)" )
2018-09-05 14:22:34 -04:00
ELSE ()
MESSAGE ( STATUS " With external SQLite3 = NO (sqlite3 not found, internal version is used for convenience)" )
ENDIF ()
2019-04-18 19:50:58 -04:00
IF ( WITH_ORB_OCTREE )
MESSAGE ( STATUS " With ORB OcTree = YES (License: GPLv3)" )
ELSE ()
MESSAGE ( STATUS " With ORB OcTree = NO (WITH_ORB_OCTREE=OFF)" )
ENDIF ()
2020-04-16 17:59:45 -04:00
IF ( TORCH_FOUND )
2020-05-09 21:13:41 -04:00
MESSAGE ( STATUS " With SupertPoint = YES (License: GPLv3) libtorch=${Torch_VERSION}" )
2021-01-17 01:56:27 -05:00
ELSEIF ( NOT WITH_TORCH )
MESSAGE ( STATUS " With SupertPoint = NO (WITH_TORCH=OFF)" )
2020-04-16 17:59:45 -04:00
ELSE ()
2020-05-09 21:13:41 -04:00
MESSAGE ( STATUS " With SupertPoint = NO (libtorch not found)" )
ENDIF ()
IF ( Python3_FOUND )
2021-01-17 01:56:27 -05:00
MESSAGE ( STATUS " With Python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} = YES (License: PSF)" )
ELSEIF ( NOT WITH_PYTHON )
MESSAGE ( STATUS " With Python3 = NO (WITH_PYTHON=OFF)" )
2020-05-09 21:13:41 -04:00
ELSE ()
2021-01-17 01:56:27 -05:00
MESSAGE ( STATUS " With Python3 = NO (python not found)" )
2020-04-16 17:59:45 -04:00
ENDIF ()
2019-05-07 18:57:53 -04:00
IF ( WITH_MADGWICK )
MESSAGE ( STATUS " With Madgwick = YES (License: GPL)" )
ELSE ()
MESSAGE ( STATUS " With Madgwick = NO (WITH_MADGWICK=OFF)" )
ENDIF ()
2019-08-17 03:55:04 -04:00
IF ( FastCV_FOUND )
MESSAGE ( STATUS " With FastCV = YES (License: Apache v2)" )
ELSEIF ( NOT WITH_FASTCV )
MESSAGE ( STATUS " With FastCV = NO (WITH_FASTCV=OFF)" )
ELSE ()
MESSAGE ( STATUS " With FastCV = NO (FastCV not found)" )
ENDIF ()
2021-01-14 15:49:18 -05:00
IF ( PDAL_FOUND )
MESSAGE ( STATUS " With PDAL = YES (License: BSD)" )
ELSEIF ( NOT WITH_PDAL )
MESSAGE ( STATUS " With PDAL = NO (WITH_PDAL=OFF)" )
ELSE ()
MESSAGE ( STATUS " With PDAL = NO (PDAL not found)" )
ENDIF ()
2019-08-17 03:55:04 -04:00
MESSAGE ( STATUS "" )
MESSAGE ( STATUS " Solvers:" )
IF ( WITH_TORO )
MESSAGE ( STATUS " With TORO = YES (License: Creative Commons [Attribution-NonCommercial-ShareAlike])" )
ELSE ()
MESSAGE ( STATUS " With TORO = NO (WITH_TORO=OFF)" )
ENDIF ()
IF ( G2O_FOUND )
MESSAGE ( STATUS " *With g2o = YES (License: BSD)" )
ELSEIF ( NOT WITH_G2O )
MESSAGE ( STATUS " *With g2o = NO (WITH_G2O=OFF)" )
ELSE ()
MESSAGE ( STATUS " *With g2o = NO (g2o not found)" )
ENDIF ()
IF ( GTSAM_FOUND )
MESSAGE ( STATUS " *With GTSAM = YES (License: BSD)" )
ELSEIF ( NOT WITH_GTSAM )
MESSAGE ( STATUS " *With GTSAM = NO (WITH_GTSAM=OFF)" )
ELSE ()
MESSAGE ( STATUS " *With GTSAM = NO (GTSAM not found)" )
ENDIF ()
IF ( CERES_FOUND )
MESSAGE ( STATUS " *With Ceres = YES (License: BSD)" )
ELSEIF ( NOT WITH_CERES )
MESSAGE ( STATUS " *With Ceres = NO (WITH_CERES=OFF)" )
ELSE ()
MESSAGE ( STATUS " *With Ceres = NO (Ceres not found)" )
ENDIF ()
IF ( G2O_FOUND OR GTSAM_FOUND )
IF ( WITH_VERTIGO )
MESSAGE ( STATUS " With VERTIGO = YES (License: GPLv3)" )
ELSE ()
MESSAGE ( STATUS " With VERTIGO = NO (WITH_VERTIGO=OFF)" )
ENDIF ()
ELSE ()
MESSAGE ( STATUS " With VERTIGO = NO (GTSAM or g2o required)" )
ENDIF ()
IF ( cvsba_FOUND )
MESSAGE ( STATUS " With cvsba = YES (License: GPLv2)" )
ELSEIF ( NOT WITH_CVSBA )
MESSAGE ( STATUS " With cvsba = NO (WITH_CVSBA=OFF)" )
ELSE ()
MESSAGE ( STATUS " With cvsba = NO (cvsba not found)" )
ENDIF ()
IF ( libpointmatcher_FOUND )
MESSAGE ( STATUS " *With libpointmatcher = YES (License: BSD)" )
ELSEIF ( NOT WITH_POINTMATCHER )
MESSAGE ( STATUS " *With libpointmatcher = NO (WITH_POINTMATCHER=OFF)" )
ELSE ()
MESSAGE ( STATUS " *With libpointmatcher = NO (libpointmatcher not found)" )
2021-03-27 15:11:20 -04:00
ENDIF ()
IF ( CCCoreLib_FOUND )
2021-04-02 19:06:03 -04:00
MESSAGE ( STATUS " With CCCoreLib = YES (License: GPLv2)" )
2021-03-27 15:11:20 -04:00
ELSEIF ( NOT WITH_POINTMATCHER )
2021-04-02 19:06:03 -04:00
MESSAGE ( STATUS " With CCCoreLib = NO (WITH_CCCORELIB=OFF)" )
2021-03-27 15:11:20 -04:00
ELSE ()
2021-04-02 19:06:03 -04:00
MESSAGE ( STATUS " With CCCoreLib = NO (CCCoreLib not found)" )
2019-08-17 03:55:04 -04:00
ENDIF ()
MESSAGE ( STATUS "" )
MESSAGE ( STATUS " Reconstruction Approaches:" )
2020-04-18 16:03:09 -04:00
IF ( octomap_FOUND )
2019-08-17 03:55:04 -04:00
MESSAGE ( STATUS " With OCTOMAP = YES (License: BSD)" )
ELSEIF ( NOT WITH_OCTOMAP )
MESSAGE ( STATUS " With OCTOMAP = NO (WITH_OCTOMAP=OFF)" )
ELSE ()
MESSAGE ( STATUS " With OCTOMAP = NO (octomap not found)" )
ENDIF ()
IF ( CPUTSDF_FOUND )
MESSAGE ( STATUS " With CPUTSDF = YES (License: BSD)" )
ELSEIF ( NOT WITH_CPUTSDF )
MESSAGE ( STATUS " With CPUTSDF = NO (WITH_CPUTSDF=OFF)" )
ELSE ()
MESSAGE ( STATUS " With CPUTSDF = NO (CPUTSDF not found)" )
ENDIF ()
IF ( open_chisel_FOUND )
MESSAGE ( STATUS " With OpenChisel = YES (License: ???)" )
ELSEIF ( NOT WITH_OPENCHISEL )
MESSAGE ( STATUS " With OpenChisel = NO (WITH_OPENCHISEL=OFF)" )
ELSE ()
MESSAGE ( STATUS " With OpenChisel = NO (open_chisel not found)" )
ENDIF ()
2019-10-24 08:56:23 -04:00
IF ( AliceVision_FOUND )
2020-11-20 13:42:56 -05:00
MESSAGE ( STATUS " With AliceVision ${AliceVision_VERSION} = YES (License: MPLv2)" )
2019-10-24 08:56:23 -04:00
ELSEIF ( NOT WITH_ALICE_VISION )
MESSAGE ( STATUS " With AliceVision = NO (WITH_ALICE_VISION=OFF)" )
ELSE ()
MESSAGE ( STATUS " With AliceVision = NO (AliceVision not found)" )
ENDIF ()
2019-08-17 03:55:04 -04:00
MESSAGE ( STATUS "" )
MESSAGE ( STATUS " Camera Drivers:" )
2014-06-04 20:24:54 +00:00
IF ( Freenect_FOUND )
2016-03-01 14:25:00 -05:00
MESSAGE ( STATUS " With Freenect = YES (License: Apache v2 and/or GPLv2)" )
2015-08-13 15:12:43 -04:00
ELSEIF ( NOT WITH_FREENECT )
MESSAGE ( STATUS " With Freenect = NO (WITH_FREENECT=OFF)" )
2014-06-04 20:24:54 +00:00
ELSE ()
2015-07-28 23:48:50 -04:00
MESSAGE ( STATUS " With Freenect = NO (libfreenect not found)" )
2014-06-04 20:24:54 +00:00
ENDIF ()
2014-06-13 23:44:38 +00:00
IF ( OpenNI2_FOUND )
2016-03-01 14:25:00 -05:00
MESSAGE ( STATUS " With OpenNI2 = YES (License: Apache v2)" )
2015-08-13 15:12:43 -04:00
ELSEIF ( NOT WITH_OPENNI2 )
MESSAGE ( STATUS " With OpenNI2 = NO (WITH_OPENNI2=OFF)" )
2014-06-13 23:44:38 +00:00
ELSE ()
2015-07-28 23:48:50 -04:00
MESSAGE ( STATUS " With OpenNI2 = NO (OpenNI2 not found)" )
2014-06-13 23:44:38 +00:00
ENDIF ()
2015-04-02 16:33:35 -04:00
IF ( freenect2_FOUND )
2016-03-01 14:25:00 -05:00
MESSAGE ( STATUS " With Freenect2 = YES (License: Apache v2 and/or GPLv2)" )
2015-08-13 15:12:43 -04:00
ELSEIF ( NOT WITH_FREENECT2 )
MESSAGE ( STATUS " With Freenect2 = NO (WITH_FREENECT2=OFF)" )
2015-04-02 16:33:35 -04:00
ELSE ()
2015-07-28 23:48:50 -04:00
MESSAGE ( STATUS " With Freenect2 = NO (libfreenect2 not found)" )
2015-04-02 16:33:35 -04:00
ENDIF ()
2017-11-06 00:19:12 -05:00
IF ( KinectSDK2_FOUND )
MESSAGE ( STATUS " With Kinect for Windows 2 = YES (License: Apache v2 and/or GPLv2)" )
ELSEIF ( NOT WITH_K4W2 )
MESSAGE ( STATUS " With Kinect for Windows 2 = NO (WITH_K4W2=OFF)" )
ELSE ()
MESSAGE ( STATUS " With Kinect for Windows 2 = NO (Kinect for Windows 2 SDK not found)" )
ENDIF ()
2019-07-10 12:34:13 -04:00
IF ( k4a_FOUND )
2019-07-09 20:48:09 -04:00
MESSAGE ( STATUS " With Kinect for Azure = YES (License: MIT)" )
ELSEIF ( NOT WITH_K4A )
MESSAGE ( STATUS " With Kinect for Azure = NO (WITH_K4A=OFF)" )
ELSE ()
MESSAGE ( STATUS " With Kinect for Azure = NO (Kinect for Azure SDK not found)" )
ENDIF ()
2015-04-03 15:13:05 -04:00
IF ( DC1394_FOUND )
2016-03-01 14:25:00 -05:00
MESSAGE ( STATUS " With dc1394 = YES (License: LGPL)" )
2015-08-13 15:12:43 -04:00
ELSEIF ( NOT WITH_DC1394 )
MESSAGE ( STATUS " With dc1394 = NO (WITH_DC1394=OFF)" )
2015-04-03 15:13:05 -04:00
ELSE ()
2015-07-28 23:48:50 -04:00
MESSAGE ( STATUS " With dc1394 = NO (dc1394 not found)" )
2015-04-03 15:13:05 -04:00
ENDIF ()
2015-04-07 12:00:10 -04:00
IF ( FlyCapture2_FOUND )
2015-07-28 23:48:50 -04:00
MESSAGE ( STATUS " With FlyCapture2/Triclops = YES" )
2015-08-13 15:12:43 -04:00
ELSEIF ( NOT WITH_FLYCAPTURE2 )
MESSAGE ( STATUS " With FlyCapture2/Triclops = NO (WITH_FLYCAPTURE2=OFF)" )
2015-04-07 12:00:10 -04:00
ELSE ()
2015-07-28 23:48:50 -04:00
MESSAGE ( STATUS " With FlyCapture2/Triclops = NO (Point Grey SDK not found)" )
2015-04-07 12:00:10 -04:00
ENDIF ()
2020-04-16 17:59:45 -04:00
IF ( ZED_FOUND AND CUDA_FOUND )
MESSAGE ( STATUS " With ZED = YES" )
2016-05-31 19:09:49 -04:00
ELSEIF ( NOT WITH_ZED )
MESSAGE ( STATUS " With ZED = NO (WITH_ZED=OFF)" )
ELSE ()
2020-04-16 17:59:45 -04:00
MESSAGE ( STATUS " With ZED = NO (ZED sdk and/or cuda not found)" )
2016-05-31 19:09:49 -04:00
ENDIF ()
2021-02-28 10:31:18 -05:00
IF ( ZEDOC_FOUND )
MESSAGE ( STATUS " With ZEDOC = YES" )
ELSEIF ( NOT WITH_ZEDOC )
MESSAGE ( STATUS " With ZEDOC = NO (WITH_ZEDOC=OFF)" )
ELSE ()
MESSAGE ( STATUS " With ZEDOC = NO (ZED Open Capture not found)" )
ENDIF ()
2016-07-26 18:39:34 -04:00
IF ( RealSense_FOUND )
MESSAGE ( STATUS " With RealSense = YES (License: Apache-2)" )
2017-04-21 21:24:23 -04:00
IF ( RealSenseSlam_FOUND )
MESSAGE ( STATUS " With RealSenseSlam = YES" )
2017-05-05 16:10:09 -04:00
ELSEIF ( NOT WITH_REALSENSE )
2017-04-21 21:24:23 -04:00
MESSAGE ( STATUS " With RealSenseSlam = NO (librealsense_slam not found)" )
2017-05-05 16:10:09 -04:00
ELSE ()
MESSAGE ( STATUS " With RealSenseSlam = NO (WITH_REALSENSE_SLAM=OFF)" )
2017-04-21 21:24:23 -04:00
ENDIF ()
2016-07-26 18:39:34 -04:00
ELSEIF ( NOT WITH_REALSENSE )
MESSAGE ( STATUS " With RealSense = NO (WITH_REALSENSE=OFF)" )
ELSE ()
MESSAGE ( STATUS " With RealSense = NO (librealsense not found)" )
ENDIF ()
2018-06-15 12:24:00 -04:00
IF ( realsense2_FOUND )
MESSAGE ( STATUS " With RealSense2 = YES (License: Apache-2)" )
ELSEIF ( NOT WITH_REALSENSE2 )
MESSAGE ( STATUS " With RealSense2 = NO (WITH_REALSENSE2=OFF)" )
ELSE ()
MESSAGE ( STATUS " With RealSense2 = NO (librealsense2 not found)" )
ENDIF ()
2020-04-30 00:57:47 -04:00
IF ( mynteye_FOUND )
MESSAGE ( STATUS " With MyntEyeS = YES (License: Apache-2)" )
ELSEIF ( NOT WITH_MYNTEYE )
MESSAGE ( STATUS " With MyntEyeS = NO (WITH_MYNTEYE=OFF)" )
ELSE ()
MESSAGE ( STATUS " With MyntEyeS = NO (mynteye s sdk not found)" )
ENDIF ()
2021-03-07 12:27:21 -05:00
IF ( depthai_FOUND )
MESSAGE ( STATUS " With DepthAI = YES (License: MIT)" )
ELSEIF ( NOT WITH_DEPTHAI )
MESSAGE ( STATUS " With DepthAI = NO (WITH_DEPTHAI=OFF)" )
ELSE ()
MESSAGE ( STATUS " With DepthAI = NO (depthai-core not found)" )
ENDIF ()
2019-08-17 03:55:04 -04:00
MESSAGE ( STATUS "" )
MESSAGE ( STATUS " Odometry Approaches:" )
IF ( loam_velodyne_FOUND )
MESSAGE ( STATUS " With loam_velodyne = YES (License: BSD)" )
ELSEIF ( NOT WITH_LOAM )
MESSAGE ( STATUS " With loam_velodyne = NO (WITH_LOAM=OFF)" )
2016-06-28 19:00:44 -04:00
ELSE ()
2019-08-17 03:55:04 -04:00
MESSAGE ( STATUS " With loam_velodyne = NO (loam_velodyne not found)" )
2018-03-26 18:06:41 -04:00
ENDIF ()
2017-05-30 09:27:31 -04:00
IF ( libfovis_FOUND )
MESSAGE ( STATUS " With libfovis = YES (License: GPLv2)" )
ELSEIF ( NOT WITH_FOVIS )
MESSAGE ( STATUS " With libfovis = NO (WITH_FOVIS=OFF)" )
ELSE ()
MESSAGE ( STATUS " With libfovis = NO (libfovis not found)" )
ENDIF ()
2017-05-30 14:03:46 -04:00
IF ( libviso2_FOUND )
MESSAGE ( STATUS " With libviso2 = YES (License: GPLv3)" )
ELSEIF ( NOT WITH_VISO2 )
MESSAGE ( STATUS " With libviso2 = NO (WITH_VISO2=OFF)" )
ELSE ()
MESSAGE ( STATUS " With libviso2 = NO (libviso2 not found)" )
ENDIF ()
2017-05-31 20:57:24 -04:00
IF ( dvo_core_FOUND )
MESSAGE ( STATUS " With dvo_core = YES (License: GPLv3)" )
ELSEIF ( NOT WITH_DVO )
MESSAGE ( STATUS " With dvo_core = NO (WITH_DVO=OFF)" )
ELSE ()
MESSAGE ( STATUS " With dvo_core = NO (dvo_core not found)" )
ENDIF ()
2018-03-07 19:43:30 -05:00
IF ( okvis_FOUND )
MESSAGE ( STATUS " With okvis = YES (License: BSD)" )
2018-07-18 16:15:41 -04:00
ELSEIF ( NOT WITH_OKVIS )
2018-03-07 19:43:30 -05:00
MESSAGE ( STATUS " With okvis = NO (WITH_OKVIS=OFF)" )
ELSE ()
MESSAGE ( STATUS " With okvis = NO (okvis not found)" )
ENDIF ()
2018-07-14 20:40:44 -04:00
IF ( msckf_vio_FOUND )
MESSAGE ( STATUS " With msckf_vio = YES (License: Penn Software License)" )
ELSEIF ( NOT WITH_MSCKF_VIO )
MESSAGE ( STATUS " With msckf_vio = NO (WITH_MSCKF_VIO=OFF)" )
ELSE ()
MESSAGE ( STATUS " With msckf_vio = NO (msckf_vio not found)" )
ENDIF ()
2019-03-18 20:45:34 -04:00
IF ( vins_FOUND )
MESSAGE ( STATUS " With VINS-Fusion = YES (License: GPLv3)" )
ELSEIF ( NOT WITH_VINS )
MESSAGE ( STATUS " With VINS-Fusion = NO (WITH_VINS=OFF)" )
ELSE ()
MESSAGE ( STATUS " With VINS-Fusion = NO (VINS-Fusion not found)" )
ENDIF ()
2021-03-28 23:51:02 -04:00
IF ( ov_msckf_FOUND )
MESSAGE ( STATUS " With OpenVINS = YES (License: GPLv3)" )
ELSEIF ( NOT WITH_OPENVINS )
MESSAGE ( STATUS " With OpenVINS = NO (WITH_OPENVINS=OFF)" )
ELSE ()
MESSAGE ( STATUS " With OpenVINS = NO (ov_msckf not found)" )
ENDIF ()
2021-03-09 16:00:41 -05:00
IF ( ORB_SLAM_FOUND )
MESSAGE ( STATUS " With ORB_SLAM${ORB_SLAM_VERSION} = YES (License: GPLv3)" )
ELSEIF ( NOT WITH_ORB_SLAM )
MESSAGE ( STATUS " With ORB_SLAM = NO (WITH_ORB_SLAM=OFF)" )
2017-06-05 19:04:23 -04:00
ELSEIF ( G2O_FOUND )
2021-03-09 16:00:41 -05:00
MESSAGE ( STATUS " With ORB_SLAM = NO (WITH_G2O should be OFF as ORB_SLAM uses its own g2o version)" )
2017-06-05 19:04:23 -04:00
ELSE ()
2021-03-09 16:00:41 -05:00
MESSAGE ( STATUS " With ORB_SLAM = NO (ORB_SLAM2 and ORB_SLAM3 not found, make sure environment variable ORB_SLAM_ROOT_DIR is set)" )
2017-06-05 19:04:23 -04:00
ENDIF ()
2020-04-16 17:59:45 -04:00
MESSAGE ( STATUS "Show all options with: cmake -LA | grep WITH_" )
2011-06-05 14:45:39 +00:00
MESSAGE ( STATUS "--------------------------------------------" )
2016-03-01 14:25:00 -05:00
2019-08-17 03:55:04 -04:00
IF ( NOT GTSAM_FOUND AND NOT G2O_FOUND AND NOT WITH_TORO AND NOT CERES_FOUND )
2016-03-01 14:25:00 -05:00
MESSAGE ( SEND_ERROR "No graph optimizer found! You should have at least one of these options:
g2o (https://github.com/RainerKuemmerle/g2o)
GTSAM (https://collab.cc.gatech.edu/borg/gtsam)
2019-08-17 03:55:04 -04:00
Ceres (http://ceres-solver.org)
2016-03-01 14:25:00 -05:00
set -DWITH_TORO=ON" )
2019-08-17 03:55:04 -04:00
ENDIF ( NOT GTSAM_FOUND AND NOT G2O_FOUND AND NOT WITH_TORO AND NOT CERES_FOUND )
2017-05-17 16:59:35 -04:00
# vim: set et ft=cmake fenc=utf-8 ff=unix sts=0 sw=2 ts=2 :