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