# Find the Vision Labs TrackEngine SDK.
|
|
# Sets the usual variables expected for find_package scripts:
|
|
# TSDK_INCLUDE_DIRS - headers location
|
|
# TSDK_LIBRARIES - libraries to link against
|
|
# TSDK_FOUND - true if TrackEngine SDK was found.
|
|
|
|
# This is the directory where the TrackEngine SDK is located.
|
|
# By default TSDKDIR environment variable value is taken.
|
|
|
|
set(TSDK_ROOT "$ENV{TSDKDIR}" CACHE PATH "Vision Labs TrackEngine SDK root directory.")
|
|
|
|
# Look for headers.
|
|
find_path(TSDK_INCLUDE_DIRS
|
|
NAMES tsdk/ITrackEngine.h tsdk/ITrackCallbacks tsdk/IStream.h tsdk/TrackEngineDefs.h tsdk/TrackEngineTypes.h
|
|
HINTS $ENV{TSDKDIR}
|
|
PATHS ${TSDK_ROOT}
|
|
PATH_SUFFIXES include)
|
|
|
|
#message(STATUS "TSDK: TSDK_INCLUDE_DIRS = ${TSDK_INCLUDE_DIRS}.")
|
|
|
|
# Determine compiler version and architecture.
|
|
# ios has no architechture/compiler branching, because only can only use clang
|
|
# and if you need multiple architechtures there still compiled into single universal binary
|
|
if(MSVC10)
|
|
set(TSDK_COMPILER_NAME vs2010)
|
|
elseif(MSVC11)
|
|
set(TSDK_COMPILER_NAME vs2012)
|
|
elseif(MSVC12)
|
|
set(TSDK_COMPILER_NAME vs2013)
|
|
elseif(MSVC14)
|
|
set(TSDK_COMPILER_NAME vs2015)
|
|
elseif(CMAKE_COMPILER_IS_GNUCXX)
|
|
set(TSDK_COMPILER_NAME gcc4)
|
|
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
set(TSDK_COMPILER_NAME clang)
|
|
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
|
|
set(TSDK_COMPILER_NAME clang)
|
|
else()
|
|
message(SEND_ERROR "Unsupported compiler: ${TSDK_COMPILER_NAME}")
|
|
endif()
|
|
|
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
set(TSDK_TARGET_NAME x64)
|
|
else()
|
|
set(TSDK_TARGET_NAME x86)
|
|
endif()
|
|
|
|
# What version of TrackEngine SDK to use.
|
|
if(ANDROID)
|
|
set(TSDK_LIB_PREFIX ${TSDK_COMPILER_NAME}/${ANDROID_ABI})
|
|
else()
|
|
set(TSDK_LIB_PREFIX ${TSDK_COMPILER_NAME}/${TSDK_TARGET_NAME})
|
|
endif()
|
|
|
|
# List of all SDK libraries.
|
|
set(TSDK_LIB_NAMES
|
|
TrackEngineSDK)
|
|
|
|
set(TSDK_LIB_PATH_SUFFIX lib/${TSDK_LIB_PREFIX})
|
|
set(TSDK_BIN_PATH_SUFFIX bin/${TSDK_LIB_PREFIX})
|
|
|
|
set(TSDK_LIB)
|
|
foreach(LIB ${TSDK_LIB_NAMES})
|
|
set(LIB_PATH ${LIB}-NOTFOUND)
|
|
find_library(LIB_PATH
|
|
NAMES ${LIB}
|
|
HINTS $ENV{TSDKDIR}
|
|
PATHS ${TSDK_ROOT}
|
|
PATH_SUFFIXES ${TSDK_LIB_PATH_SUFFIX}
|
|
${TSDK_BIN_PATH_SUFFIX}
|
|
NO_DEFAULT_PATH)
|
|
list(APPEND TSDK_LIB ${LIB_PATH})
|
|
endforeach()
|
|
|
|
# Find debug libraries (may be missing in your distribution).
|
|
set(TSDK_LIBD)
|
|
foreach(LIB ${TSDK_LIB_NAMES})
|
|
set(LIB_PATH ${LIB}-NOTFOUND)
|
|
find_library(LIB_PATH
|
|
NAMES ${LIB}d
|
|
HINTS $ENV{TSDKDIR}
|
|
PATHS ${TSDK_ROOT}
|
|
PATH_SUFFIXES ${TSDK_LIB_PATH_SUFFIX}
|
|
${TSDK_BIN_PATH_SUFFIX}
|
|
NO_DEFAULT_PATH)
|
|
|
|
list(APPEND TSDK_LIBD ${LIB_PATH})
|
|
endforeach()
|
|
|
|
# Support the REQUIRED and QUIET arguments, and set TSDK_FOUND if found.
|
|
include(FindPackageHandleStandardArgs)
|
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(TSDK DEFAULT_MSG
|
|
TSDK_INCLUDE_DIRS)
|
|
|
|
set(TSDK_LIBRARIES)
|
|
|
|
if(TSDK_FOUND)
|
|
if(TSDK_LIB)
|
|
foreach(LIB ${TSDK_LIB})
|
|
list(APPEND TSDK_LIBRARIES optimized ${LIB})
|
|
endforeach()
|
|
message(STATUS "TSDK [INFO]: Release libraries are available.")
|
|
elseif(TSDK_LIBD)
|
|
message(STATUS "TSDK [WARN]: Release libraries are NOT available.")
|
|
else()
|
|
message(FATAL_ERROR "TSDK [ERROR]: TrackEngine libraries are NOT available.")
|
|
endif()
|
|
|
|
if(TSDK_LIBD)
|
|
foreach(LIB ${TSDK_LIBD})
|
|
list(APPEND TSDK_LIBRARIES debug ${LIB})
|
|
endforeach()
|
|
message(STATUS "TSDK [INFO]: Debug libraries are available.")
|
|
elseif(TSDK_LIB)
|
|
message(STATUS "TSDK [WARN]: Debug libraries are NOT available.")
|
|
else()
|
|
message(FATAL_ERROR "TSDK [ERROR]: TrackEngine libraries are NOT available.")
|
|
endif()
|
|
|
|
message(STATUS "TSDK [INFO]: Found TDK in ${TSDK_ROOT}.")
|
|
else()
|
|
message(STATUS "TSDK [WARN]: TrackEngineSDK was NOT found.")
|
|
endif(TSDK_FOUND)
|
|
|
|
#message(STATUS "TSDK [DEBUG]: TSDK_LIBRARIES = ${TSDK_LIBRARIES}.")
|
|
|
|
# Don't show in GUI
|
|
mark_as_advanced(
|
|
TSDK_INCLUDE_DIRS
|
|
TSDK_LIBRARIES
|
|
TSDK_COMPILER_NAME
|
|
TSDK_TARGET_NAME
|
|
TSDK_LIB_PREFIX
|
|
TSDK_LIB_NAMES
|
|
TSDK_LIB_NAMESD
|
|
TSDK_LIB
|
|
TSDK_LIBD
|
|
LIB_PATH
|
|
)
|