Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add RealSense SDK grabber and viewer #1401

Merged
merged 3 commits into from
Oct 25, 2015
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Add CMake module for RealSense SDK
  • Loading branch information
taketwo committed Oct 24, 2015
commit adea8183bbb5b10f046cb6a07a6bc741d2015ff9
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,7 @@ PCL_ADD_GRABBER_DEPENDENCY("FZAPI" "Fotonic camera support")
PCL_ADD_GRABBER_DEPENDENCY("Ensenso" "IDS-Imaging Ensenso camera support")
PCL_ADD_GRABBER_DEPENDENCY("davidSDK" "David Vision Systems SDK support")
PCL_ADD_GRABBER_DEPENDENCY("DSSDK" "DepthSense SDK support")
PCL_ADD_GRABBER_DEPENDENCY("RSSDK" "RealSense SDK support")

# metslib
if (PKG_CONFIG_FOUND)
Expand Down
41 changes: 40 additions & 1 deletion PCLConfig.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,43 @@ macro(find_dssdk)
endif()
endmacro(find_dssdk)

macro(find_rssdk)
if(NOT RSSDK_DIR AND ("@HAVE_RSSDK@" STREQUAL "TRUE"))
get_filename_component(RSSDK_DIR_HINT "@RSSDK_INCLUDE_DIRS@" PATH)
endif()
find_path(RSSDK_DIR include/pxcversion.h
HINTS ${RSSDK_DIR_HINT}
PATHS "$ENV{RSSDK_DIR}"
"$ENV{PROGRAMFILES}/Intel/RSSDK"
"$ENV{PROGRAMW6432}/Intel/RSSDK"
"C:/Program Files (x86)/Intel/RSSDK"
"C:/Program Files/Intel/RSSDK"
DOC "RealSense SDK directory")
set(_RSSDK_INCLUDE_DIRS ${RSSDK_DIR}/include)
set(RSSDK_RELEASE_NAME libpxc.lib)
set(RSSDK_DEBUG_NAME libpxc_d.lib)
find_library(RSSDK_LIBRARY
NAMES ${RSSDK_RELEASE_NAME}
PATHS "${RSSDK_DIR}/lib/" NO_DEFAULT_PATH
PATH_SUFFIXES x64 Win32)
find_library(RSSDK_LIBRARY_DEBUG
NAMES ${RSSDK_DEBUG_NAME} ${RSSDK_RELEASE_NAME}
PATHS "${RSSDK_DIR}/lib/" NO_DEFAULT_PATH
PATH_SUFFIXES x64 Win32)
if(NOT RSSDK_LIBRARY_DEBUG)
set(RSSDK_LIBRARY_DEBUG ${RSSDK_LIBRARY})
endif()
set(_RSSDK_LIBRARIES optimized ${RSSDK_LIBRARY} debug ${RSSDK_LIBRARY_DEBUG})
mark_as_advanced(RSSDK_LIBRARY RSSDK_LIBRARY_DEBUG)
find_package_handle_standard_args(RSSDK DEFAULT_MSG _RSSDK_LIBRARIES _RSSDK_INCLUDE_DIRS)
if(RSSDK_FOUND)
set(RSSDK_LIBRARIES ${_RSSDK_LIBRARIES})
mark_as_advanced(RSSDK_LIBRARIES)
set(RSSDK_INCLUDE_DIRS ${_RSSDK_INCLUDE_DIRS})
mark_as_advanced(RSSDK_INCLUDE_DIRS)
endif()
endmacro(find_rssdk)

#remove this as soon as flann is shipped with FindFlann.cmake
macro(find_flann)
if(PCL_ALL_IN_ONE_INSTALLER)
Expand Down Expand Up @@ -549,6 +586,8 @@ macro(find_external_library _component _lib _is_optional)
find_davidSDK()
elseif("${_lib}" STREQUAL "dssdk")
find_dssdk()
elseif("${_lib}" STREQUAL "rssdk")
find_rssdk()
elseif("${_lib}" STREQUAL "vtk")
find_VTK()
elseif("${_lib}" STREQUAL "libusb-1.0")
Expand Down Expand Up @@ -825,7 +864,7 @@ endif(NOT "${PCL_DEFINITIONS}" STREQUAL "")
pcl_remove_duplicate_libraries(PCL_LIBRARIES PCL_DEDUP_LIBRARIES)
set(PCL_LIBRARIES ${PCL_DEDUP_LIBRARIES})
# Add 3rd party libraries, as user code might include our .HPP implementations
list(APPEND PCL_LIBRARIES ${BOOST_LIBRARIES} ${QHULL_LIBRARIES} ${OPENNI_LIBRARIES} ${OPENNI2_LIBRARIES} ${ENSENSO_LIBRARIES} ${davidSDK_LIBRARIES} ${DSSDK_LIBRARIES} ${FLANN_LIBRARIES} ${VTK_LIBRARIES})
list(APPEND PCL_LIBRARIES ${BOOST_LIBRARIES} ${QHULL_LIBRARIES} ${OPENNI_LIBRARIES} ${OPENNI2_LIBRARIES} ${ENSENSO_LIBRARIES} ${davidSDK_LIBRARIES} ${DSSDK_LIBRARIES} ${RSSDK_LIBRARIES} ${FLANN_LIBRARIES} ${VTK_LIBRARIES})

find_package_handle_standard_args(PCL DEFAULT_MSG PCL_LIBRARIES PCL_INCLUDE_DIRS)
mark_as_advanced(PCL_LIBRARIES PCL_INCLUDE_DIRS PCL_LIBRARY_DIRS)
Expand Down
67 changes: 67 additions & 0 deletions cmake/Modules/FindRSSDK.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
###############################################################################
# Find Intel RealSense SDK
#
# find_package(RSSDK)
#
# Variables defined by this module:
#
# RSSDK_FOUND True if RealSense SDK was found
# RSSDK_VERSION The version of RealSense SDK
# RSSDK_INCLUDE_DIRS The location(s) of RealSense SDK headers
# RSSDK_LIBRARIES Libraries needed to use RealSense SDK

find_path(RSSDK_DIR include/pxcversion.h
PATHS "$ENV{RSSDK_DIR}"
"$ENV{PROGRAMFILES}/Intel/RSSDK"
"$ENV{PROGRAMW6432}/Intel/RSSDK"
"C:/Program Files (x86)/Intel/RSSDK"
"C:/Program Files/Intel/RSSDK"
DOC "RealSense SDK directory")

if(RSSDK_DIR)

# Include directories
set(RSSDK_INCLUDE_DIRS ${RSSDK_DIR}/include)
mark_as_advanced(RSSDK_INCLUDE_DIRS)

# Libraries
set(RSSDK_RELEASE_NAME libpxc.lib)
set(RSSDK_DEBUG_NAME libpxc_d.lib)
find_library(RSSDK_LIBRARY
NAMES ${RSSDK_RELEASE_NAME}
PATHS "${RSSDK_DIR}/lib/" NO_DEFAULT_PATH
PATH_SUFFIXES x64 Win32)
find_library(RSSDK_LIBRARY_DEBUG
NAMES ${RSSDK_DEBUG_NAME} ${RSSDK_RELEASE_NAME}
PATHS "${RSSDK_DIR}/lib/" NO_DEFAULT_PATH
PATH_SUFFIXES x64 Win32)
if(NOT RSSDK_LIBRARY_DEBUG)
set(RSSDK_LIBRARY_DEBUG ${RSSDK_LIBRARY})
endif()
set(RSSDK_LIBRARIES optimized ${RSSDK_LIBRARY} debug ${RSSDK_LIBRARY_DEBUG})
mark_as_advanced(RSSDK_LIBRARY RSSDK_LIBRARY_DEBUG)

# Version
set(RSSDK_VERSION 0)
file(STRINGS "${RSSDK_INCLUDE_DIRS}/pxcversion.h" _pxcversion_H_CONTENTS REGEX "#define PXC_VERSION_.*")
set(_RSSDK_VERSION_REGEX "([0-9]+)")
foreach(v MAJOR MINOR BUILD REVISION)
if("${_pxcversion_H_CONTENTS}" MATCHES ".*#define PXC_VERSION_${v} *${_RSSDK_VERSION_REGEX}.*")
set(RSSDK_VERSION_${v} "${CMAKE_MATCH_1}")
endif()
endforeach()
unset(_pxcversion_H_CONTENTS)
set(RSSDK_VERSION "${RSSDK_VERSION_MAJOR}.${RSSDK_VERSION_MINOR}.${RSSDK_VERSION_BUILD}.${RSSDK_VERSION_REVISION}")

endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(RSSDK
FOUND_VAR RSSDK_FOUND
REQUIRED_VARS RSSDK_LIBRARIES RSSDK_INCLUDE_DIRS
VERSION_VAR RSSDK_VERSION
)

if(MSVC)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /NODEFAULTLIB:LIBCMTD")
endif()