1# - Find quatlib
2# Find the quatlib headers and libraries.
3#
4#  QUATLIB_INCLUDE_DIRS - where to find quat.h
5#  QUATLIB_LIBRARIES    - List of libraries when using quatlib.
6#  QUATLIB_FOUND        - True if quatlib found.
7#
8# Original Author:
9# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
10# http://academic.cleardefinition.com
11# Iowa State University HCI Graduate Program/VRAC
12#
13# Copyright Iowa State University 2009-2010.
14# Distributed under the Boost Software License, Version 1.0.
15# (See accompanying file LICENSE_1_0.txt or copy at
16# http://www.boost.org/LICENSE_1_0.txt)
17
18if(TARGET quat)
19	# Look for the header file.
20	find_path(QUATLIB_INCLUDE_DIR NAMES quat.h
21			PATHS ${quatlib_SOURCE_DIR})
22
23	set(QUATLIB_LIBRARY "quat")
24
25else()
26	set(QUATLIB_ROOT_DIR
27		"${QUATLIB_ROOT_DIR}"
28		CACHE
29		PATH
30		"Root directory to search for quatlib")
31	if(DEFINED VRPN_ROOT_DIR AND NOT QUATLIB_ROOT_DIR)
32		set(QUATLIB_ROOT_DIR "${VRPN_ROOT_DIR}")
33		mark_as_advanced(QUATLIB_ROOT_DIR)
34	endif()
35
36	if("${CMAKE_SIZEOF_VOID_P}" MATCHES "8")
37		set(_libsuffixes lib64 lib)
38
39		# 64-bit dir: only set on win64
40		file(TO_CMAKE_PATH "$ENV{ProgramW6432}" _progfiles)
41	else()
42		set(_libsuffixes lib)
43		set(_PF86 "ProgramFiles(x86)")
44		if(NOT "$ENV{${_PF86}}" STREQUAL "")
45			# 32-bit dir: only set on win64
46			file(TO_CMAKE_PATH "$ENV{${_PF86}}" _progfiles)
47		else()
48			# 32-bit dir on win32, useless to us on win64
49			file(TO_CMAKE_PATH "$ENV{ProgramFiles}" _progfiles)
50		endif()
51	endif()
52
53	# Look for the header file.
54	find_path(QUATLIB_INCLUDE_DIR
55		NAMES
56		quat.h
57		HINTS
58		"${QUATLIB_ROOT_DIR}"
59		PATH_SUFFIXES
60		include
61		PATHS
62		"${_progfiles}/VRPN"
63		"${_progfiles}/quatlib"
64		C:/usr/local
65		/usr/local)
66
67	# Look for the library.
68	find_library(QUATLIB_LIBRARY
69		NAMES
70		quat.lib
71		libquat.a
72		HINTS
73		"${QUATLIB_ROOT_DIR}"
74		PATH_SUFFIXES
75		${_libsuffixes}
76		PATHS
77		"${_progfiles}/VRPN"
78		"${_progfiles}/quatlib"
79		C:/usr/local
80		/usr/local)
81endif()
82
83# handle the QUIETLY and REQUIRED arguments and set QUATLIB_FOUND to TRUE if
84# all listed variables are TRUE
85include(FindPackageHandleStandardArgs)
86find_package_handle_standard_args(quatlib
87	DEFAULT_MSG
88	QUATLIB_LIBRARY
89	QUATLIB_INCLUDE_DIR)
90
91if(QUATLIB_FOUND)
92	set(QUATLIB_LIBRARIES ${QUATLIB_LIBRARY})
93	if(NOT WIN32)
94		list(APPEND QUATLIB_LIBRARIES m)
95	endif()
96	set(QUATLIB_INCLUDE_DIRS ${QUATLIB_INCLUDE_DIR})
97
98	mark_as_advanced(QUATLIB_ROOT_DIR)
99else()
100	set(QUATLIB_LIBRARIES)
101	set(QUATLIB_INCLUDE_DIRS)
102endif()
103
104mark_as_advanced(QUATLIB_LIBRARY QUATLIB_INCLUDE_DIR)
105