1# - try to find Gadgeteer 1.2 library 2# Requires JCCL 1.2 and VPR 2.0 (thus FindJCCL12.cmake and FindVPR20.cmake) 3# Requires X11 if not on Mac or Windows. 4# Optionally uses Flagpoll and FindFlagpoll.cmake 5# 6# This library is a part of VR Juggler 2.2 - you probably want to use 7# find_package(VRJuggler22) instead, for an easy interface to this and 8# related scripts. See FindVRJuggler22.cmake for more information. 9# 10# GADGETEER12_LIBRARY_DIR, library search path 11# GADGETEER12_INCLUDE_DIR, include search path 12# GADGETEER12_LIBRARY, the library to link against 13# GADGETEER12_FOUND, If false, do not try to use this library. 14# 15# Plural versions refer to this library and its dependencies, and 16# are recommended to be used instead, unless you have a good reason. 17# 18# Useful configuration variables you might want to add to your cache: 19# GADGETEER12_ROOT_DIR - A directory prefix to search 20# (a path that contains include/ as a subdirectory) 21# 22# This script will use Flagpoll, if found, to provide hints to the location 23# of this library, but does not use the compiler flags returned by Flagpoll 24# directly. 25# 26# The VJ_BASE_DIR environment variable is also searched (preferentially) 27# when searching for this component, so most sane build environments should 28# "just work." Note that you need to manually re-run CMake if you change 29# this environment variable, because it cannot auto-detect this change 30# and trigger an automatic re-run. 31# 32# Original Author: 33# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net> 34# http://academic.cleardefinition.com 35# Iowa State University HCI Graduate Program/VRAC 36# 37# Copyright Iowa State University 2009-2010. 38# Distributed under the Boost Software License, Version 1.0. 39# (See accompanying file LICENSE_1_0.txt or copy at 40# http://www.boost.org/LICENSE_1_0.txt) 41 42set(_HUMAN "Gadgeteer 1.2") 43set(_RELEASE_NAMES gadget-1_2 libgadget-1_2) 44set(_DEBUG_NAMES gadget_d-1_2 libgadget_d-1_2) 45set(_DIR gadgeteer-1.2) 46set(_HEADER gadget/gadgetConfig.h) 47set(_FP_PKG_NAME gadgeteer) 48 49include(SelectLibraryConfigurations) 50include(CreateImportedTarget) 51include(CleanLibraryList) 52include(CleanDirectoryList) 53 54if(Gadgeteer12_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) 66 flagpoll_get_extra_libs(${_FP_PKG_NAME} NO_DEPS) 67endif() 68 69set(GADGETEER12_ROOT_DIR 70 "${GADGETEER12_ROOT_DIR}" 71 CACHE 72 PATH 73 "Root directory to search for Gadgeteer") 74if(DEFINED VRJUGGLER22_ROOT_DIR) 75 mark_as_advanced(GADGETEER12_ROOT_DIR) 76endif() 77if(NOT GADGETEER12_ROOT_DIR) 78 set(GADGETEER12_ROOT_DIR "${VRJUGGLER22_ROOT_DIR}") 79endif() 80 81set(_ROOT_DIR "${GADGETEER12_ROOT_DIR}") 82 83find_path(GADGETEER12_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(GADGETEER12_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(GADGETEER12_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(GADGETEER12) 118 119# Dependencies 120foreach(package JCCL12 VPR20 GMTL) 121 if(NOT ${PACKAGE}_FOUND) 122 find_package(${package} ${_FIND_FLAGS}) 123 endif() 124endforeach() 125 126if(UNIX AND NOT APPLE AND NOT WIN32) 127 # We need X11 if not on Mac or Windows 128 if(NOT X11_FOUND) 129 find_package(X11 ${_FIND_FLAGS}) 130 endif() 131 132 set(_CHECK_EXTRAS 133 X11_FOUND 134 X11_X11_LIB 135 X11_ICE_LIB 136 X11_SM_LIB 137 X11_INCLUDE_DIR) 138endif() 139 140# handle the QUIETLY and REQUIRED arguments and set xxx_FOUND to TRUE if 141# all listed variables are TRUE 142include(FindPackageHandleStandardArgs) 143find_package_handle_standard_args(Gadgeteer12 144 DEFAULT_MSG 145 GADGETEER12_LIBRARY 146 GADGETEER12_INCLUDE_DIR 147 JCCL12_FOUND 148 JCCL12_LIBRARIES 149 JCCL12_INCLUDE_DIR 150 VPR20_FOUND 151 VPR20_LIBRARIES 152 VPR20_INCLUDE_DIR 153 GMTL_FOUND 154 GMTL_INCLUDE_DIR 155 ${_CHECK_EXTRAS}) 156 157if(GADGETEER12_FOUND) 158 set(_DEPS ${JCCL12_LIBRARIES} ${VPR20_LIBRARIES}) 159 160 set(GADGETEER12_INCLUDE_DIRS ${GADGETEER12_INCLUDE_DIR}) 161 list(APPEND 162 GADGETEER12_INCLUDE_DIRS 163 ${JCCL12_INCLUDE_DIRS} 164 ${VPR20_INCLUDE_DIRS} 165 ${GMTL_INCLUDE_DIRS}) 166 167 if(UNIX AND NOT APPLE AND NOT WIN32) 168 # We need X11 if not on Mac or Windows 169 list(APPEND _DEPS ${X11_X11_LIB} ${X11_ICE_LIB} ${X11_SM_LIB}) 170 list(APPEND GADGETEER12_INCLUDE_DIRS ${X11_INCLUDE_DIR}) 171 endif() 172 173 clean_directory_list(GADGETEER12_INCLUDE_DIRS) 174 175 if(VRJUGGLER22_CREATE_IMPORTED_TARGETS) 176 create_imported_target(GADGETEER12 ${_DEPS}) 177 else() 178 clean_library_list(GADGETEER12_LIBRARIES ${_DEPS}) 179 endif() 180 181 mark_as_advanced(GADGETEER12_ROOT_DIR) 182endif() 183 184mark_as_advanced(GADGETEER12_LIBRARY_RELEASE 185 GADGETEER12_LIBRARY_DEBUG 186 GADGETEER12_INCLUDE_DIR) 187