1# - try to find Sensable GHOST library and include files 2# GHOST_INCLUDE_DIRS, where to find GL/glut.h, etc. 3# GHOST_LIBRARIES, the libraries to link against 4# GHOST_FOUND, If false, do not try to use GLUT. 5# GHOST_RUNTIME_LIBRARY_DIRS, path to DLL on Windows for runtime use. 6# 7# Requires these CMake modules: 8# no additional modules required 9# 10# Original Author: 11# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net> 12# http://academic.cleardefinition.com 13# Iowa State University HCI Graduate Program/VRAC 14# 15# Copyright Iowa State University 2009-2010. 16# Distributed under the Boost Software License, Version 1.0. 17# (See accompanying file LICENSE_1_0.txt or copy at 18# http://www.boost.org/LICENSE_1_0.txt) 19 20set(GHOST_ROOT_DIR 21 "${GHOST_ROOT_DIR}" 22 CACHE 23 PATH 24 "Path to search for GHOST") 25 26set(_dirs) 27if(WIN32) 28 include(ProgramFilesGlob) 29 program_files_fallback_glob(_dirs "/Sensable/GHOST/v*/") 30endif() 31 32find_path(GHOST_INCLUDE_DIR 33 gstPHANToM.h 34 PATHS 35 ${_dirs} 36 HINTS 37 "${GHOST_ROOT_DIR}" 38 PATH_SUFFIXES 39 include) 40 41find_library(GHOST_LIBRARY 42 GHOST40 43 GHOST31 44 PATHS 45 ${_dirs} 46 HINTS 47 "${GHOST_ROOT_DIR}" 48 PATH_SUFFIXES 49 lib) 50 51if(MSVC) 52 if(MSVC_VERSION GREATER 1300) 53 # .NET and newer: fake the STL headers 54 get_filename_component(_moddir "${CMAKE_CURRENT_LIST_FILE}" PATH) 55 set(GHOST_STL_INCLUDE_DIR "${_moddir}/ghost-fake-stl") 56 else() 57 # 6.0 and earlier - use GHOST-provided STL 58 find_path(GHOST_STL_INCLUDE_DIR 59 vector.h 60 PATHS 61 ${_dirs} 62 HINTS 63 "${GHOST_ROOT_DIR}" 64 "${GHOST_INCLUDE_DIR}" 65 PATH_SUFFIXES 66 external/stl 67 stl) 68 endif() 69 set(_deps_check GHOST_STL_INCLUDE_DIR) 70else() 71 set(_deps_check) 72endif() 73 74# handle the QUIETLY and REQUIRED arguments and set xxx_FOUND to TRUE if 75# all listed variables are TRUE 76include(FindPackageHandleStandardArgs) 77find_package_handle_standard_args(GHOST 78 DEFAULT_MSG 79 GHOST_LIBRARY 80 ${_deps_check} 81 GHOST_INCLUDE_DIR) 82 83if(GHOST_FOUND) 84 set(GHOST_LIBRARIES "${GHOST_LIBRARY}") 85 set(GHOST_INCLUDE_DIRS "${GHOST_INCLUDE_DIR}") 86 87 mark_as_advanced(GHOST_ROOT_DIR) 88endif() 89 90mark_as_advanced(GHOST_LIBRARY GHOST_STL_INCLUDE_DIR GHOST_INCLUDE_DIR) 91