1# - try to find Trivisio Colibri API library
2#
3# Cache Variables:
4#  COLIBRIAPI_LIBRARY
5#  COLIBRIAPI_INCLUDE_DIR
6#
7# Non-cache variables you might use in your CMakeLists.txt:
8#  COLIBRIAPI_FOUND
9#  COLIBRIAPI_SERVER_LIBRARIES - server libraries
10#  COLIBRIAPI_LIBRARIES - client libraries
11#  COLIBRIAPI_CLIENT_DEFINITIONS - definitions if you only use the client library
12#  COLIBRIAPI_DEFINITIONS - Client-only definition if all we found was the client library.
13#  COLIBRIAPI_INCLUDE_DIRS
14#
15# COLIBRIAPI_ROOT_DIR is searched preferentially for these files
16#
17# Requires these CMake modules:
18#  FindPackageHandleStandardArgs (known included with CMake >=2.6.2)
19#
20# Original Author:
21# 2009-2012 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
22# http://academic.cleardefinition.com
23# Iowa State University HCI Graduate Program/VRAC
24#
25# Copyright Iowa State University 2009-2012.
26# Distributed under the Boost Software License, Version 1.0.
27# (See accompanying file LICENSE_1_0.txt or copy at
28# http://www.boost.org/LICENSE_1_0.txt)
29
30set(COLIBRIAPI_ROOT_DIR
31	"${COLIBRIAPI_ROOT_DIR}"
32	CACHE
33	PATH
34	"Root directory to search for Colibri API")
35
36if("${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)
41else()
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()
51endif()
52
53###
54# Configure COLIBRIAPI
55###
56
57find_path(COLIBRIAPI_INCLUDE_DIR
58	NAMES
59	colibri_api.h
60	PATH_SUFFIXES
61	include
62	HINTS
63	"${COLIBRIAPI_ROOT_DIR}"
64	PATHS
65	"${_progfiles}/ColibriAPI 1.1.20140925 (64-bit)"
66	"$ENV{HOME}"
67	"$ENV{HOME}/ColibriAPI-1.1.20140710-Linux-amd64"
68	C:/usr/local
69	/usr/local)
70
71find_library(COLIBRIAPI_LIBRARY
72	NAMES
73	colibri-api
74	PATH_SUFFIXES
75	${_libsuffixes}
76	HINTS
77	"${COLIBRIAPI_ROOT_DIR}"
78	PATHS
79	"${_progfiles}/ColibriAPI 1.1.20140925 (64-bit)"
80	"$ENV{HOME}"
81	"$ENV{HOME}/ColibriAPI-1.1.20140710-Linux-amd64"
82	C:/usr/local
83	/usr/local)
84
85###
86# Dependencies
87###
88set(_deps_libs)
89set(_deps_includes)
90set(_deps_check)
91
92find_package(quatlib)
93list(APPEND _deps_libs ${QUATLIB_LIBRARIES})
94list(APPEND _deps_includes ${QUATLIB_INCLUDE_DIRS})
95list(APPEND _deps_check QUATLIB_FOUND)
96
97if(NOT WIN32)
98	find_package(Threads)
99	list(APPEND _deps_libs ${CMAKE_THREAD_LIBS_INIT})
100	list(APPEND _deps_check CMAKE_HAVE_THREADS_LIBRARY)
101endif()
102
103
104# handle the QUIETLY and REQUIRED arguments and set xxx_FOUND to TRUE if
105# all listed variables are TRUE
106include(FindPackageHandleStandardArgs)
107find_package_handle_standard_args(ColibriApi
108	DEFAULT_MSG
109	COLIBRIAPI_LIBRARY
110	COLIBRIAPI_INCLUDE_DIR
111	${_deps_check})
112
113if(COLIBRIAPI_FOUND)
114	set(COLIBRIAPI_INCLUDE_DIRS "${COLIBRIAPI_INCLUDE_DIR}" ${_deps_includes})
115	set(COLIBRIAPI_LIBRARIES "${COLIBRIAPI_LIBRARY}" ${_deps_libs})
116
117	mark_as_advanced(COLIBRIAPI_ROOT_DIR)
118endif()
119
120mark_as_advanced(COLIBRIAPI_LIBRARY COLIBRIAPI_INCLUDE_DIR)
121