thirdParty/PCL 1.12.0/cmake/Modules/FindOpenNI.cmake

86 lines
3.0 KiB
CMake
Raw Normal View History

###############################################################################
# Find OpenNI
#
# find_package(OpenNI)
#
# Variables defined by this module:
#
# OPENNI_FOUND True if OpenNI was found
# OPENNI_INCLUDE_DIRS The location(s) of OpenNI headers
# OPENNI_LIBRARIES Libraries needed to use OpenNI
# OPENNI_DEFINITIONS Compiler flags for OpenNI
find_package(PkgConfig QUIET)
pkg_check_modules(PC_OPENNI QUIET libopenni)
set(OPENNI_DEFINITIONS ${PC_OPENNI_CFLAGS_OTHER})
set(OPENNI_SUFFIX)
if(WIN32 AND CMAKE_SIZEOF_VOID_P EQUAL 8)
set(OPENNI_SUFFIX 64)
endif()
# Add a hint so that it can find it without the pkg-config
find_path(OPENNI_INCLUDE_DIR XnStatus.h
HINTS ${PC_OPENNI_INCLUDEDIR}
${PC_OPENNI_INCLUDE_DIRS}
/usr/include/openni
/usr/include/ni
/opt/local/include/ni
"${OPENNI_ROOT}"
"$ENV{OPENNI_ROOT}"
PATHS "$ENV{OPEN_NI_INSTALL_PATH${OPENNI_SUFFIX}}/Include"
PATH_SUFFIXES openni include Include)
# Add a hint so that it can find it without the pkg-config
find_library(OPENNI_LIBRARY
NAMES OpenNI${OPENNI_SUFFIX}
HINTS ${PC_OPENNI_LIBDIR}
${PC_OPENNI_LIBRARY_DIRS}
/usr/lib
"${OPENNI_ROOT}"
"$ENV{OPENNI_ROOT}"
PATHS "$ENV{OPEN_NI_LIB${OPENNI_SUFFIX}}"
PATH_SUFFIXES lib Lib Lib64)
if(OPENNI_INCLUDE_DIR AND OPENNI_LIBRARY)
# Include directories
set(OPENNI_INCLUDE_DIRS ${OPENNI_INCLUDE_DIR})
unset(OPENNI_INCLUDE_DIR)
mark_as_advanced(OPENNI_INCLUDE_DIRS)
# Libraries
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
find_package(libusb REQUIRED)
set(OPENNI_LIBRARIES ${OPENNI_LIBRARY} libusb::libusb)
else()
set(OPENNI_LIBRARIES ${OPENNI_LIBRARY})
endif()
unset(OPENNI_LIBRARY)
mark_as_advanced(OPENNI_LIBRARIES)
endif()
if(EXISTS "${OPENNI_INCLUDE_DIR}/XnVersion.h")
file(STRINGS "${OPENNI_INCLUDE_DIR}/XnVersion.h" _contents REGEX "^#define[ \t]+XN_[A-Z]+_VERSION[ \t]+[0-9]+")
if(_contents)
string(REGEX REPLACE ".*#define[ \t]+XN_MAJOR_VERSION[ \t]+([0-9]+).*" "\\1" OPENNI_VERSION_MAJOR "${_contents}")
string(REGEX REPLACE ".*#define[ \t]+XN_MINOR_VERSION[ \t]+([0-9]+).*" "\\1" OPENNI_VERSION_MINOR "${_contents}")
string(REGEX REPLACE ".*#define[ \t]+XN_MAINTENANCE_VERSION[ \t]+([0-9]+).*" "\\1" OPENNI_VERSION_PATCH "${_contents}")
string(REGEX REPLACE ".*#define[ \t]+XN_BUILD_VERSION[ \t]+([0-9]+).*" "\\1" OPENNI_VERSION_BUILD "${_contents}")
set(OPENNI_VERSION "${OPENNI_VERSION_MAJOR}.${OPENNI_VERSION_MINOR}.${OPENNI_VERSION_PATCH}.${OPENNI_VERSION_BUILD}")
endif()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(OpenNI
FOUND_VAR OPENNI_FOUND
REQUIRED_VARS OPENNI_LIBRARIES OPENNI_INCLUDE_DIRS
VERSION_VAR OPENNI_VERSION
)
if(OPENNI_FOUND)
message(STATUS "OpenNI found (version: ${OPENNI_VERSION}, include: ${OPENNI_INCLUDE_DIRS}, lib: ${OPENNI_LIBRARIES})")
endif()