86 lines
3.0 KiB
CMake
86 lines
3.0 KiB
CMake
###############################################################################
|
|
# 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()
|