1# - try to find Sonix 1.4 library 2# Requires VPR 2.2 and GMTL (thus FindVPR22.cmake and FindGMTL.cmake) 3# Optionally uses Flagpoll and FindFlagpoll.cmake 4# 5# This library is a part of VR Juggler 3.0 - you probably want to use 6# find_package(VRJuggler30) instead, for an easy interface to this and 7# related scripts. See FindVRJuggler30.cmake for more information. 8# 9# SONIX14_LIBRARY_DIR, library search path 10# SONIX14_INCLUDE_DIR, include search path 11# SONIX14_LIBRARY, the library to link against 12# SONIX14_FOUND, If false, do not try to use this library. 13# 14# Plural versions refer to this library and its dependencies, and 15# are recommended to be used instead, unless you have a good reason. 16# 17# Useful configuration variables you might want to add to your cache: 18# SONIX14_ROOT_DIR - A directory prefix to search 19# (a path that contains include/ as a subdirectory) 20# 21# This script will use Flagpoll, if found, to provide hints to the location 22# of this library, but does not use the compiler flags returned by Flagpoll 23# directly. 24# 25# The VJ_BASE_DIR environment variable is also searched (preferentially) 26# when searching for this component, so most sane build environments should 27# "just work." Note that you need to manually re-run CMake if you change 28# this environment variable, because it cannot auto-detect this change 29# and trigger an automatic re-run. 30# 31# Original Author: 32# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net> 33# http://academic.cleardefinition.com 34# Iowa State University HCI Graduate Program/VRAC 35# Updated for VR Juggler 3.0 by: 36# Brandon Newendorp <brandon@newendorp.com> 37 38 39set(_HUMAN "Sonix 1.4") 40set(_FP_PKG_NAME sonix) 41set(_RELEASE_NAMES) 42set(_DEBUG_NAMES) 43foreach(VER 1_4 1_4_0 1_4_1 1_4_2) 44 list(APPEND _RELEASE_NAMES ${_FP_PKG_NAME}-${VER}) 45 list(APPEND _DEBUG_NAMES ${_FP_PKG_NAME}_d-${VER}) 46endforeach() 47set(_DIR sonix-1.4) 48set(_HEADER snx/sonix.h) 49 50include(SelectLibraryConfigurations) 51include(CreateImportedTarget) 52include(CleanLibraryList) 53include(CleanDirectoryList) 54 55if(SONIX14_FIND_QUIETLY) 56 set(_FIND_FLAGS "QUIET") 57else() 58 set(_FIND_FLAGS "") 59endif() 60 61# Try flagpoll. 62find_package(Flagpoll QUIET) 63 64if(FLAGPOLL) 65 flagpoll_get_include_dirs(${_FP_PKG_NAME} NO_DEPS) 66 flagpoll_get_library_dirs(${_FP_PKG_NAME} NO_DEPS) 67endif() 68 69set(SONIX14_ROOT_DIR 70 "${SONIX14_ROOT_DIR}" 71 CACHE 72 PATH 73 "Root directory to search for Sonix") 74if(DEFINED VRJUGGLER30_ROOT_DIR) 75 mark_as_advanced(SONIX14_ROOT_DIR) 76endif() 77if(NOT SONIX14_ROOT_DIR) 78 set(SONIX14_ROOT_DIR "${VRJUGGLER30_ROOT_DIR}") 79endif() 80 81set(_ROOT_DIR "${SONIX14_ROOT_DIR}") 82 83find_path(SONIX14_INCLUDE_DIR 84 ${_HEADER} 85 HINTS 86 "${_ROOT_DIR}" 87 ${${_FP_PKG_NAME}_FLAGPOLL_INCLUDE_DIRS} 88 PATH_SUFFIXES 89 ${_DIR} 90 include/${_DIR} 91 include/ 92 DOC 93 "Path to ${_HUMAN} includes root") 94 95find_library(SONIX14_LIBRARY_RELEASE 96 NAMES 97 ${_RELEASE_NAMES} 98 HINTS 99 "${_ROOT_DIR}" 100 ${${_FP_PKG_NAME}_FLAGPOLL_LIBRARY_DIRS} 101 PATH_SUFFIXES 102 ${_VRJ_LIBSUFFIXES} 103 DOC 104 "${_HUMAN} release library full path") 105 106find_library(SONIX14_LIBRARY_DEBUG 107 NAMES 108 ${_DEBUG_NAMES} 109 HINTS 110 "${_ROOT_DIR}" 111 ${${_FP_PKG_NAME}_FLAGPOLL_LIBRARY_DIRS} 112 PATH_SUFFIXES 113 ${_VRJ_LIBDSUFFIXES} 114 DOC 115 "${_HUMAN} debug library full path") 116 117select_library_configurations(SONIX14) 118 119# Dependencies 120if(NOT VPR22_FOUND) 121 find_package(VPR22 ${_FIND_FLAGS}) 122endif() 123 124if(NOT GMTL_FOUND) 125 find_package(GMTL ${_FIND_FLAGS}) 126endif() 127 128# handle the QUIETLY and REQUIRED arguments and set xxx_FOUND to TRUE if 129# all listed variables are TRUE 130include(FindPackageHandleStandardArgs) 131find_package_handle_standard_args(SONIX14 132 DEFAULT_MSG 133 SONIX14_LIBRARY 134 SONIX14_INCLUDE_DIR 135 VPR22_FOUND 136 VPR22_LIBRARIES 137 VPR22_INCLUDE_DIR 138 GMTL_FOUND 139 GMTL_INCLUDE_DIR) 140 141if(SONIX14_FOUND) 142 set(_DEPS ${VPR22_LIBRARIES}) 143 144 set(SONIX14_INCLUDE_DIRS ${SONIX14_INCLUDE_DIR}) 145 list(APPEND 146 SONIX14_INCLUDE_DIRS 147 ${VPR22_INCLUDE_DIRS} 148 ${GMTL_INCLUDE_DIRS}) 149 150 clean_directory_list(SONIX14_INCLUDE_DIRS) 151 152 if(VRJUGGLER30_CREATE_IMPORTED_TARGETS) 153 create_imported_target(SONIX14 ${_DEPS}) 154 else() 155 clean_library_list(SONIX14_LIBRARIES ${_DEPS}) 156 endif() 157 158 mark_as_advanced(SONIX14_ROOT_DIR) 159endif() 160 161mark_as_advanced(SONIX14_LIBRARY_RELEASE 162 SONIX14_LIBRARY_DEBUG 163 SONIX14_INCLUDE_DIR) 164