1# - try to find Sonix 1.2 library 2# Requires VPR 2.0 and GMTL (thus FindVPR20.cmake and FindGMTL.cmake) 3# Optionally uses Flagpoll and FindFlagpoll.cmake 4# 5# This library is a part of VR Juggler 2.2 - you probably want to use 6# find_package(VRJuggler22) instead, for an easy interface to this and 7# related scripts. See FindVRJuggler22.cmake for more information. 8# 9# SONIX12_LIBRARY_DIR, library search path 10# SONIX12_INCLUDE_DIR, include search path 11# SONIX12_LIBRARY, the library to link against 12# SONIX12_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# SONIX12_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# 36# Copyright Iowa State University 2009-2010. 37# Distributed under the Boost Software License, Version 1.0. 38# (See accompanying file LICENSE_1_0.txt or copy at 39# http://www.boost.org/LICENSE_1_0.txt) 40 41 42set(_HUMAN "Sonix 1.2") 43set(_RELEASE_NAMES sonix-1_2 libsonix-1_2) 44set(_DEBUG_NAMES sonix_d-1_2 libsonix_d-1_2) 45set(_DIR sonix-1.2) 46set(_HEADER snx/sonix.h) 47set(_FP_PKG_NAME sonix) 48 49include(SelectLibraryConfigurations) 50include(CreateImportedTarget) 51include(CleanLibraryList) 52include(CleanDirectoryList) 53 54if(Sonix12_FIND_QUIETLY) 55 set(_FIND_FLAGS "QUIET") 56else() 57 set(_FIND_FLAGS "") 58endif() 59 60# Try flagpoll. 61find_package(Flagpoll QUIET) 62 63if(FLAGPOLL) 64 flagpoll_get_include_dirs(${_FP_PKG_NAME} NO_DEPS) 65 flagpoll_get_library_dirs(${_FP_PKG_NAME} NO_DEPS) 66endif() 67 68set(SONIX12_ROOT_DIR 69 "${SONIX12_ROOT_DIR}" 70 CACHE 71 PATH 72 "Root directory to search for Sonix") 73if(DEFINED VRJUGGLER22_ROOT_DIR) 74 mark_as_advanced(SONIX12_ROOT_DIR) 75endif() 76if(NOT SONIX12_ROOT_DIR) 77 set(SONIX12_ROOT_DIR "${VRJUGGLER22_ROOT_DIR}") 78endif() 79 80set(_ROOT_DIR "${SONIX12_ROOT_DIR}") 81 82find_path(SONIX12_INCLUDE_DIR 83 ${_HEADER} 84 HINTS 85 "${_ROOT_DIR}" 86 ${${_FP_PKG_NAME}_FLAGPOLL_INCLUDE_DIRS} 87 PATH_SUFFIXES 88 ${_DIR} 89 include/${_DIR} 90 include/ 91 DOC 92 "Path to ${_HUMAN} includes root") 93 94find_library(SONIX12_LIBRARY_RELEASE 95 NAMES 96 ${_RELEASE_NAMES} 97 HINTS 98 "${_ROOT_DIR}" 99 ${${_FP_PKG_NAME}_FLAGPOLL_LIBRARY_DIRS} 100 PATH_SUFFIXES 101 ${_VRJ_LIBSUFFIXES} 102 DOC 103 "${_HUMAN} release library full path") 104 105find_library(SONIX12_LIBRARY_DEBUG 106 NAMES 107 ${_DEBUG_NAMES} 108 HINTS 109 "${_ROOT_DIR}" 110 ${${_FP_PKG_NAME}_FLAGPOLL_LIBRARY_DIRS} 111 PATH_SUFFIXES 112 ${_VRJ_LIBDSUFFIXES} 113 DOC 114 "${_HUMAN} debug library full path") 115 116select_library_configurations(SONIX12) 117 118# Dependencies 119if(NOT VPR20_FOUND) 120 find_package(VPR20 ${_FIND_FLAGS}) 121endif() 122 123if(NOT GMTL_FOUND) 124 find_package(GMTL ${_FIND_FLAGS}) 125endif() 126 127# handle the QUIETLY and REQUIRED arguments and set xxx_FOUND to TRUE if 128# all listed variables are TRUE 129include(FindPackageHandleStandardArgs) 130find_package_handle_standard_args(Sonix12 131 DEFAULT_MSG 132 SONIX12_LIBRARY 133 SONIX12_INCLUDE_DIR 134 VPR20_FOUND 135 VPR20_LIBRARIES 136 VPR20_INCLUDE_DIR 137 GMTL_FOUND 138 GMTL_INCLUDE_DIR) 139 140if(SONIX12_FOUND) 141 set(_DEPS ${VPR20_LIBRARIES}) 142 143 set(SONIX12_INCLUDE_DIRS ${SONIX12_INCLUDE_DIR}) 144 list(APPEND 145 SONIX12_INCLUDE_DIRS 146 ${VPR20_INCLUDE_DIRS} 147 ${GMTL_INCLUDE_DIRS}) 148 149 clean_directory_list(SONIX12_INCLUDE_DIRS) 150 151 if(VRJUGGLER22_CREATE_IMPORTED_TARGETS) 152 create_imported_target(SONIX12 ${_DEPS}) 153 else() 154 clean_library_list(SONIX12_LIBRARIES ${_DEPS}) 155 endif() 156 157 mark_as_advanced(SONIX12_ROOT_DIR) 158endif() 159 160mark_as_advanced(SONIX12_LIBRARY_RELEASE 161 SONIX12_LIBRARY_DEBUG 162 SONIX12_INCLUDE_DIR) 163