You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

137 lines
3.8 KiB

# Find the Vision Labs Liveness SDK & Face SDK.
# Sets the usual variables expected for find_package scripts:
# LSDK_INCLUDE_DIRS - headers location
# LSDK_LIBRARIES - libraries to link against
# LSDK_FOUND - true if Liveness SDK was found.
# This is the directory where the Liveness SDK is located.
# By default LSDKDIR environment variable value is taken.
find_package(FaceEngineSDK REQUIRED)
set(LSDK_ROOT "$ENV{LSDKDIR}" CACHE PATH "Vision Labs Liveness SDK root directory.")
# Look for headers.
find_path(LSDK_INCLUDE_DIRS
NAMES lsdk/LivenessEngine.h lsdk/ILiveness.h
HINTS $ENV{LSDKDIR}
PATHS ${LSDK_ROOT}
PATH_SUFFIXES include)
# iOS framework have different header structure: not flower/header.h, but Headers/header.h. But when you link against framework it's name is used as prefix for includes, so you still use its includes as flower/header.h in c++ code.
# Now the reason to set this variable is that its used for every other platform and its easier to fake it than rewrite most cmakelists
if(IOS)
set(LSDK_INCLUDE_DIRS ${LSDK_ROOT}/include)
endif()
#message(STATUS "LSDK [DEBUG]: LSDK_INCLUDE_DIRS = ${LSDK_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(NOT IOS)
if(MSVC10)
set(LSDK_COMPILER_NAME vs2010)
elseif(MSVC11)
set(LSDK_COMPILER_NAME vs2012)
elseif(MSVC12)
set(LSDK_COMPILER_NAME vs2013)
elseif(MSVC14)
set(LSDK_COMPILER_NAME vs2015)
elseif(CMAKE_COMPILER_IS_GNUCXX)
set(LSDK_COMPILER_NAME gcc4)
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(LSDK_COMPILER_NAME clang)
else()
message(SEND_ERROR "Unsupported compiler: ${LSDK_COMPILER_NAME}")
endif()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(LSDK_TARGET_NAME x64)
else()
set(LSDK_TARGET_NAME x86)
endif()
# What version of Face SDK to use.
set(LSDK_LIB_PREFIX ${LSDK_COMPILER_NAME}/${LSDK_TARGET_NAME})
endif()
if(IOS)
# List of all SDK libraries.
set(LSDK_LIB_NAMES
LivenessEngine)
else()
# List of all SDK libraries.
set(LSDK_LIB_NAMES
LivenessEngineSDK)
endif()
if(IOS)
set(LSDK_LIB_PATH_SUFFIX Frameworks)
set(LSDK_BIN_PATH_SUFFIX Frameworks)
else()
set(LSDK_LIB_PATH_SUFFIX lib/${LSDK_LIB_PREFIX})
set(LSDK_BIN_PATH_SUFFIX bin/${LSDK_LIB_PREFIX})
endif()
# Find optimized libraries.
set(LSDK_LIB)
foreach(LIB ${LSDK_LIB_NAMES})
set(LIB_PATH ${LIB}-NOTFOUND)
find_library(LIB_PATH
NAMES ${LIB}
HINTS $ENV{LSDKDIR}
PATHS ${LSDK_ROOT}
PATH_SUFFIXES
${LSDK_LIB_PATH_SUFFIX}
NO_DEFAULT_PATH
)
list(APPEND LSDK_LIB ${LIB_PATH})
endforeach()
# Find debug libraries (may be missing in your distribution).
set(LSDK_LIBD)
foreach(LIB ${LSDK_LIB_NAMES})
set(LIB_PATH ${LIB}-NOTFOUND)
find_library(LIB_PATH
NAMES ${LIB}d
HINTS $ENV{LSDKDIR}
PATHS ${LSDK_ROOT}
PATH_SUFFIXES
${LSDK_LIB_PATH_SUFFIX}
NO_DEFAULT_PATH
)
list(APPEND LSDK_LIBD ${LIB_PATH})
endforeach()
#link components
if(LSDK_LIB AND LSDK_LIBD)
set(LSDK_LIBRARIES optimized ${LSDK_LIB} debug ${LSDK_LIBD})
elseif(LSDK_LIBD)
set(LSDK_LIBRARIES ${LSDK_LIBD})
message(STATUS "LSDK [WARN]: Release libraries were not found")
elseif(LSDK_LIB)
set(LSDK_LIBRARIES ${LSDK_LIB})
message(STATUS "LSDK [WARN]: Debug libraries were not found")
endif()
# Support the REQUIRED and QUIET arguments, and set LSDK_FOUND if found.
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LSDK DEFAULT_MSG
LSDK_LIBRARIES
LSDK_INCLUDE_DIRS)
# Don't show in GUI
mark_as_advanced(
LSDK_INCLUDE_DIRS
LSDK_LIBRARIES
LSDK_COMPILER_NAME
LSDK_TARGET_NAME
LSDK_LIB_PREFIX
LSDK_LIB_NAMES
LSDK_LIB_NAMESD
LSDK_LIB
LSDK_LIBD
LIB_PATH
)