From 4d025568dcbffd753da82edb0e7a3801f9e400d0 Mon Sep 17 00:00:00 2001 From: matlabbe Date: Fri, 5 May 2017 16:10:09 -0400 Subject: [PATCH] updated FindRealSense.cmake --- CMakeLists.txt | 11 ++++++-- cmake_modules/FindRealSense.cmake | 43 ++++++++++++++++++++----------- 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ee745780..f765a57f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -149,6 +149,7 @@ option(WITH_CVSBA "Include cvsba support" ON) option(WITH_FLYCAPTURE2 "Include FlyCapture2/Triclops support" ON) option(WITH_ZED "Include ZED sdk support" ON) option(WITH_REALSENSE "Include RealSense support" ON) +option(WITH_REALSENSE_SLAM "Include RealSenseSlam support" ON) option(WITH_OCTOMAP "Include Octomap support" ON) option(PCL_OMP "With PCL OMP implementations" ON) @@ -315,7 +316,11 @@ IF(WITH_ZED) ENDIF(WITH_ZED) IF(WITH_REALSENSE) - FIND_PACKAGE(RealSense QUIET) + IF(WITH_REALSENSE_SLAM) + FIND_PACKAGE(RealSense QUIET COMPONENTS slam) + ELSE() + FIND_PACKAGE(RealSense QUIET) + ENDIF() IF(RealSense_FOUND) MESSAGE(STATUS "Found RealSense: ${RealSense_INCLUDE_DIRS}") ENDIF(RealSense_FOUND) @@ -744,8 +749,10 @@ IF(RealSense_FOUND) MESSAGE(STATUS " With RealSense = YES (License: Apache-2)") IF(RealSenseSlam_FOUND) MESSAGE(STATUS " With RealSenseSlam = YES") -ELSE() +ELSEIF(NOT WITH_REALSENSE) MESSAGE(STATUS " With RealSenseSlam = NO (librealsense_slam not found)") +ELSE() +MESSAGE(STATUS " With RealSenseSlam = NO (WITH_REALSENSE_SLAM=OFF)") ENDIF() ELSEIF(NOT WITH_REALSENSE) MESSAGE(STATUS " With RealSense = NO (WITH_REALSENSE=OFF)") diff --git a/cmake_modules/FindRealSense.cmake b/cmake_modules/FindRealSense.cmake index 0d81c12a..0767be7b 100644 --- a/cmake_modules/FindRealSense.cmake +++ b/cmake_modules/FindRealSense.cmake @@ -8,6 +8,14 @@ # RealSense_INCLUDE_DIRS - The RealSense include directory. # RealSense_LIBRARIES - The RealSense library to link against. +# Use find_package( RealSense COMPONENTS slam ) to search for realsense slam library +if( RealSense_FIND_COMPONENTS ) + foreach( component ${RealSense_FIND_COMPONENTS} ) + string( TOUPPER ${component} _COMPONENT ) + set( REALSENSE_USE_${_COMPONENT} 1 ) + endforeach() +endif() + #RealSense library find_path(RealSense_INCLUDE_DIRS NAMES librealsense/rs.hpp PATHS $ENV{RealSense_ROOT_DIR}/include) if(CMAKE_CL_64) @@ -21,17 +29,21 @@ IF (RealSense_INCLUDE_DIRS AND RealSense_LIBRARY) ENDIF (RealSense_INCLUDE_DIRS AND RealSense_LIBRARY) #SLAM -find_path(RealSenseSlam_INCLUDE_DIRS NAMES librealsense/slam/slam.h PATHS $ENV{RealSense_ROOT_DIR}/include) -if(CMAKE_CL_64) -find_library(RealSenseSlam_LIBRARY NAMES realsense_slam PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/x64) -find_library(RealSenseImage_LIBRARY NAMES realsense_image PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/x64) -find_library(RealSenseSP_Core_LIBRARY NAMES SP_Core PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/x64) -find_library(RealSenseTracker_LIBRARY NAMES tracker PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/x64) +if(REALSENSE_USE_SLAM) + find_path(RealSenseSlam_INCLUDE_DIRS NAMES librealsense/slam/slam.h PATHS $ENV{RealSense_ROOT_DIR}/include) + if(CMAKE_CL_64) + find_library(RealSenseSlam_LIBRARY NAMES realsense_slam PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/x64) + find_library(RealSenseImage_LIBRARY NAMES realsense_image PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/x64) + find_library(RealSenseSP_Core_LIBRARY NAMES SP_Core PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/x64) + find_library(RealSenseTracker_LIBRARY NAMES tracker PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/x64) + else() + find_library(RealSenseSlam_LIBRARY NAMES realsense_slam PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/Win32) + find_library(RealSenseImage_LIBRARY NAMES realsense_image PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/Win32) + find_library(RealSenseSP_Core_LIBRARY NAMES SP_Core PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/Win32) + find_library(RealSenseTracker_LIBRARY NAMES tracker PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/Win32) + endif() else() -find_library(RealSenseSlam_LIBRARY NAMES realsense_slam PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/Win32) -find_library(RealSenseImage_LIBRARY NAMES realsense_image PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/Win32) -find_library(RealSenseSP_Core_LIBRARY NAMES SP_Core PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/Win32) -find_library(RealSenseTracker_LIBRARY NAMES tracker PATHS $ENV{RealSense_ROOT_DIR}/lib $ENV{RealSense_ROOT_DIR}/bin $ENV{RealSense_ROOT_DIR}/bin/Win32) + set(RealSenseSlam_INCLUDE_DIRS "") endif() IF (RealSense_FOUND) @@ -40,19 +52,20 @@ IF (RealSense_FOUND) SET(RealSenseSlam_FOUND TRUE) ENDIF (RealSenseSlam_INCLUDE_DIRS AND RealSenseSlam_LIBRARY AND RealSenseImage_LIBRARY AND RealSenseSP_Core_LIBRARY AND RealSenseTracker_LIBRARY) - # show which RealSense was found only if not quiet SET(RealSense_LIBRARIES ${RealSense_LIBRARY}) IF (RealSenseSlam_FOUND) - IF (RealSenseSlam_INCLUDE_DIRS AND RealSenseSlam_LIBRARY AND RealSenseImage_LIBRARY AND RealSenseSP_Core_LIBRARY AND RealSenseTracker_LIBRARY) - SET(RealSenseSlam_FOUND TRUE) -ENDIF (RealSenseSlam_INCLUDE_DIRS AND RealSenseSlam_LIBRARY AND RealSenseImage_LIBRARY AND RealSenseSP_Core_LIBRARY AND RealSenseTracker_LIBRARY) -SET(RealSense_LIBRARIES + IF (RealSenseSlam_INCLUDE_DIRS AND RealSenseSlam_LIBRARY AND RealSenseImage_LIBRARY AND RealSenseSP_Core_LIBRARY AND RealSenseTracker_LIBRARY) + SET(RealSenseSlam_FOUND TRUE) + ENDIF (RealSenseSlam_INCLUDE_DIRS AND RealSenseSlam_LIBRARY AND RealSenseImage_LIBRARY AND RealSenseSP_Core_LIBRARY AND RealSenseTracker_LIBRARY) + SET(RealSense_LIBRARIES ${RealSense_LIBRARIES} ${RealSenseSlam_LIBRARY} ${RealSenseImage_LIBRARY} ${RealSenseSP_Core_LIBRARY} ${RealSenseTracker_LIBRARY}) ENDIF(RealSenseSlam_FOUND) + + # show which RealSense was found only if not quiet IF (NOT RealSense_FIND_QUIETLY) MESSAGE(STATUS "Found RealSense: ${RealSense_LIBRARIES}") ENDIF (NOT RealSense_FIND_QUIETLY)