File: FindOpenHaptics.cmake

package info (click to toggle)
opensurgsim 0.7.0-5
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 23,600 kB
  • ctags: 16,440
  • sloc: cpp: 135,427; ansic: 4,247; python: 3,934; makefile: 36
file content (80 lines) | stat: -rw-r--r-- 2,587 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# - Try to find the Sensable OpenHaptics (specifically, the HDAPI portion).
#
# Once done this will define
#  OPENHAPTICS_FOUND - system has the OpenHaptics directory
#  OPENHAPTICS_INCLUDE_DIR - the OpenHaptics include directory
#  OPENHAPTICS_LIBRARIES - the OpenHaptics HDAPI libraries

# This file is a part of the OpenSurgSim project.
# Copyright 2013, SimQuest Solutions Inc.


# Cache settings and OpenHaptics environment variables take
# precedence, or we try to fall back to the default search.

find_path(OPENHAPTICS_INCLUDE_DIR
	NAMES HD/hd.h
	PATHS "$ENV{3DTOUCH_BASE}" "$ENV{OH_SDK_BASE}"
	PATH_SUFFIXES "include"
	NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH
)
find_path(OPENHAPTICS_INCLUDE_DIR
	NAMES include/HD/hd.h
	PATH_SUFFIXES "include"
)


set(LIB_ARCH "unknown")
if(WIN32 AND MSVC)
	if(NOT CMAKE_CL_64)
		set(LIB_ARCH "win32")
	else()
		set(LIB_ARCH "x64")
	endif()
else(WIN32 AND MSVC)
	if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
		# On Linux, the installation puts things into /usr/lib64 or
		# /usr/lib as appropriate.
		#    http://www.sensable.com/documents/documents/HW_userguide_Linux.pdf
		# If you only have one library flavor installed, things should
		# work out of the box.  (If you have both, things get messy fast,
		# and we don't have a Linux version of OpenHaptics to test against,
		# so this is likely broken for now.)
		set(LIB_ARCH "")
	else(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
		message(STATUS "Could not determine the OpenHaptics architecture!")
	endif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
endif(WIN32 AND MSVC)

if(OPENHAPTICS_INCLUDE_DIR)
	get_filename_component(OPENHAPTICS_ROOT_DIR
		${OPENHAPTICS_INCLUDE_DIR} PATH)
endif(OPENHAPTICS_INCLUDE_DIR)


find_library(OPENHAPTICS_HD_LIBRARY
	NAMES HD  # note: case doesn't matter on Windows, uppercase needed for Linux
	HINTS "${OPENHAPTICS_ROOT_DIR}"
	PATH_SUFFIXES "lib/${LIB_ARCH}" "lib"
	NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH
)
find_library(OPENHAPTICS_HD_LIBRARY
	NAMES HD
	HINTS "${OPENHAPTICS_ROOT_DIR}"
	PATH_SUFFIXES "lib/${LIB_ARCH}" "lib"
)


include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(OpenHaptics
	DEFAULT_MSG OPENHAPTICS_ROOT_DIR OPENHAPTICS_INCLUDE_DIR
	OPENHAPTICS_HD_LIBRARY)
mark_as_advanced(OPENHAPTICS_INCLUDE_DIR)
mark_as_advanced(OPENHAPTICS_HD_LIBRARY)


# Big assumption: will be using the HDAPI, without the HDU utility library.
if(OPENHAPTICS_FOUND)
	set(OPENHAPTICS_LIBRARIES ${OPENHAPTICS_HD_LIBRARY})
endif(OPENHAPTICS_FOUND)
mark_as_advanced(OPENHAPTICS_LIBRARIES)