Squashed 'cmake/' content from commit 2d25566
git-subtree-dir: cmake git-subtree-split: 2d25566a1c5162ce3fd6bfc268d5665de182af89
This commit is contained in:
200
FindGlove5DT.cmake
Normal file
200
FindGlove5DT.cmake
Normal file
@@ -0,0 +1,200 @@
|
||||
# - try to find Glove5DT libraries
|
||||
#
|
||||
# Cache Variables: (probably not for direct use in your scripts)
|
||||
# GLOVE5DT_INCLUDE_DIR
|
||||
# GLOVE5DT_LIBRARY
|
||||
# GLOVE5DT_LIBRARY_RELEASE
|
||||
# GLOVE5DT_LIBRARY_DEBUG
|
||||
# GLOVE5DT_RUNTIME_LIBRARY_RELEASE
|
||||
# GLOVE5DT_RUNTIME_LIBRARY_DEBUG
|
||||
#
|
||||
# Non-cache variables you might use in your CMakeLists.txt:
|
||||
# GLOVE5DT_FOUND
|
||||
# GLOVE5DT_INCLUDE_DIRS
|
||||
# GLOVE5DT_LIBRARIES
|
||||
# GLOVE5DT_RUNTIME_LIBRARY_DIRS
|
||||
#
|
||||
# Requires these CMake modules:
|
||||
# CleanDirectoryList
|
||||
# CleanLibraryList
|
||||
# ListCombinations
|
||||
# ProgramFilesGlob
|
||||
# SelectLibraryConfigurations (included with CMake >=2.8.0)
|
||||
# FindPackageHandleStandardArgs (known included with CMake >=2.6.2)
|
||||
#
|
||||
# Original Author:
|
||||
# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
|
||||
# http://academic.cleardefinition.com
|
||||
# Iowa State University HCI Graduate Program/VRAC
|
||||
#
|
||||
# Copyright Iowa State University 2009-2010
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
set(GLOVE5DT_ROOT_DIR
|
||||
"${GLOVE5DT_ROOT_DIR}"
|
||||
CACHE
|
||||
PATH
|
||||
"Path to search for Glove5DT SDK")
|
||||
|
||||
###
|
||||
# Configure Glove5DT
|
||||
###
|
||||
|
||||
include(SelectLibraryConfigurations)
|
||||
include(ListCombinations)
|
||||
include(CleanDirectoryList)
|
||||
include(ProgramFilesGlob)
|
||||
|
||||
if(WIN32)
|
||||
# Data Glove 5 and 16 use these directories for includes, lib, and runtime
|
||||
program_files_glob(_dirs516 "/5DT/*/Driver")
|
||||
set(_dirs516
|
||||
"${GLOVE5DT_ROOT_DIR}/Driver"
|
||||
"${GLOVE5DT_ROOT_DIR}"
|
||||
${_dirs516})
|
||||
|
||||
# Data Glove Ultra uses this directory as the base for a dll, inc, and lib directory
|
||||
program_files_glob(_dirsultra "/5DT/*/SDK")
|
||||
|
||||
list_combinations(_libsearchultra
|
||||
PREFIXES
|
||||
"${GLOVE5DT_ROOT_DIR}"
|
||||
"${_dirsultra}"
|
||||
SUFFIXES
|
||||
"/lib")
|
||||
list_combinations(_incsearchultra
|
||||
PREFIXES
|
||||
"${GLOVE5DT_ROOT_DIR}"
|
||||
"${_dirsultra}"
|
||||
SUFFIXES
|
||||
"/inc")
|
||||
list_combinations(_dllsearchultra
|
||||
PREFIXES
|
||||
"${GLOVE5DT_ROOT_DIR}"
|
||||
"${_dirsultra}"
|
||||
SUFFIXES
|
||||
"/dll")
|
||||
endif()
|
||||
|
||||
|
||||
###
|
||||
# First search for the Ultra (2.0) SDK
|
||||
###
|
||||
find_path(GLOVE5DT_INCLUDE_DIR
|
||||
NAMES
|
||||
fglove.h
|
||||
HINTS
|
||||
${_incsearchultra})
|
||||
|
||||
find_library(GLOVE5DT_LIBRARY_RELEASE
|
||||
NAMES
|
||||
fglove
|
||||
HINTS
|
||||
${_libsearchultra})
|
||||
|
||||
find_library(GLOVE5DT_LIBRARY_DEBUG
|
||||
NAMES
|
||||
fgloved
|
||||
HINTS
|
||||
${_libsearchultra})
|
||||
|
||||
|
||||
select_library_configurations(GLOVE5DT)
|
||||
# As a post condition, either both LIBRARY_RELEASE and LIBRARY_DEBUG are set, or
|
||||
# neither is.
|
||||
|
||||
|
||||
###
|
||||
# Ultra (2.0) SDK Runtime Libraries
|
||||
###
|
||||
if(WIN32)
|
||||
find_file(GLOVE5DT_RUNTIME_LIBRARY_RELEASE
|
||||
NAMES
|
||||
fglove.dll
|
||||
HINTS
|
||||
${_dllsearchultra})
|
||||
|
||||
find_file(GLOVE5DT_RUNTIME_LIBRARY_DEBUG
|
||||
NAMES
|
||||
fgloved.dll
|
||||
HINTS
|
||||
${_dllsearchultra})
|
||||
else()
|
||||
# the library is the runtime library
|
||||
set(GLOVE5DT_RUNTIME_LIBRARY_RELEASE "${GLOVE5DT_LIBRARY_RELEASE}")
|
||||
set(GLOVE5DT_RUNTIME_LIBRARY_DEBUG "${GLOVE5DT_LIBRARY_DEBUG}")
|
||||
endif()
|
||||
|
||||
|
||||
select_library_configurations(GLOVE5DT_RUNTIME)
|
||||
|
||||
|
||||
###
|
||||
# Fallback to the 5/16 (1.0) SDK
|
||||
###
|
||||
find_path(GLOVE5DT_INCLUDE_DIR
|
||||
NAMES
|
||||
fglove.h
|
||||
HINTS
|
||||
${_dirs516})
|
||||
|
||||
find_library(GLOVE5DT_LIBRARY_RELEASE
|
||||
NAMES
|
||||
fglove
|
||||
HINTS
|
||||
${_dirs516})
|
||||
|
||||
select_library_configurations(GLOVE5DT)
|
||||
|
||||
###
|
||||
# 5/16 (1.0) SDK Runtime Libraries
|
||||
###
|
||||
|
||||
if(WIN32)
|
||||
find_file(GLOVE5DT_RUNTIME_LIBRARY_RELEASE
|
||||
NAMES
|
||||
fglove.dll
|
||||
HINTS
|
||||
${_dirs516})
|
||||
else()
|
||||
# the library is the runtime library
|
||||
set(GLOVE5DT_RUNTIME_LIBRARY_RELEASE "${GLOVE5DT_LIBRARY_RELEASE}")
|
||||
endif()
|
||||
|
||||
select_library_configurations(GLOVE5DT_RUNTIME)
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set xxx_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Glove5DT
|
||||
DEFAULT_MSG
|
||||
GLOVE5DT_LIBRARY_RELEASE
|
||||
GLOVE5DT_RUNTIME_LIBRARY_RELEASE
|
||||
GLOVE5DT_INCLUDE_DIR)
|
||||
|
||||
|
||||
if(GLOVE5DT_FOUND)
|
||||
set(GLOVE5DT_RUNTIME_LIBRARY_DIRS)
|
||||
foreach(_lib
|
||||
GLOVE5DT_RUNTIME_LIBRARY_RELEASE
|
||||
GLOVE5DT_RUNTIME_LIBRARY_DEBUG)
|
||||
if(${_lib})
|
||||
get_filename_component(_libdir ${${_lib}} PATH)
|
||||
list(APPEND GLOVE5DT_RUNTIME_LIBRARY_DIRS "${_libdir}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
clean_directory_list(GLOVE5DT_RUNTIME_LIBRARY_DIRS)
|
||||
set(GLOVE5DT_INCLUDE_DIRS "${GLOVE5DT_INCLUDE_DIR}")
|
||||
set(GLOVE5DT_LIBRARIES ${GLOVE5DT_LIBRARY})
|
||||
mark_as_advanced(GLOVE5DT_ROOT_DIR)
|
||||
endif()
|
||||
|
||||
|
||||
mark_as_advanced(GLOVE5DT_INCLUDE_DIR
|
||||
GLOVE5DT_LIBRARY_RELEASE
|
||||
GLOVE5DT_LIBRARY_DEBUG
|
||||
GLOVE5DT_RUNTIME_LIBRARY_RELEASE
|
||||
GLOVE5DT_RUNTIME_LIBRARY_DEBUG)
|
||||
Reference in New Issue
Block a user