1# Module for locating SVT-HEVC Library 2# 3# SVT_HEVC_INCLUDE_DIR 4# Points to the SVT-HEVC include directory. 5# 6# SVT_HEVC_LIBRARY 7# Points to the SVT-HEVC library 8# Copyright (c) 2013-2018 MulticoreWare, Inc 9 10include(FindPackageHandleStandardArgs) 11 12if(UNIX) 13SET(CMAKE_FIND_LIBRARY_SUFFIXES ".so") 14else() 15SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib") 16endif() 17 18set(SVT_VERSION_MAJOR_REQUIRED 1) 19set(SVT_VERSION_MINOR_REQUIRED 4) 20set(SVT_VERSION_PATCHLEVEL_REQUIRED 1) 21 22find_path(SVT_HEVC_INCLUDE_DIR 23 NAMES EbApiVersion.h EbErrorCodes.h 24 HINTS $ENV{SVT_HEVC_INCLUDE_DIR} 25 PATHS ENV 26 DOC "SVT-HEVC include directory") 27 28if(SVT_HEVC_INCLUDE_DIR) 29 if(EXISTS "${SVT_HEVC_INCLUDE_DIR}/EbApiVersion.h") 30 file(READ "${SVT_HEVC_INCLUDE_DIR}/EbApiVersion.h" version) 31 32 string(REGEX MATCH "SVT_VERSION_MAJOR \\(([0-9]*)\\)" _ ${version}) 33 set(SVT_VERSION_MAJOR ${CMAKE_MATCH_1}) 34 35 string(REGEX MATCH "SVT_VERSION_MINOR \\(([0-9]*)\\)" _ ${version}) 36 set(SVT_VERSION_MINOR ${CMAKE_MATCH_1}) 37 38 string(REGEX MATCH "SVT_VERSION_PATCHLEVEL \\(([0-9]*)\\)" _ ${version}) 39 set(SVT_VERSION_PATCHLEVEL ${CMAKE_MATCH_1}) 40 41 if(NOT ${SVT_VERSION_MAJOR} EQUAL "1" OR NOT ${SVT_VERSION_MINOR} EQUAL "4" OR NOT ${SVT_VERSION_PATCHLEVEL} EQUAL "1") 42 message (SEND_ERROR "-- Found SVT-HEVC Lib Version: ${SVT_VERSION_MAJOR}.${SVT_VERSION_MINOR}.${SVT_VERSION_PATCHLEVEL} which doesn't match the required version: ${SVT_VERSION_MAJOR_REQUIRED}.${SVT_VERSION_MINOR_REQUIRED}.${SVT_VERSION_PATCHLEVEL_REQUIRED}; Aborting configure ") 43 else() 44 message(STATUS "-- Found SVT-HEVC Lib Version: ${SVT_VERSION_MAJOR}.${SVT_VERSION_MINOR}.${SVT_VERSION_PATCHLEVEL}") 45 endif() 46 else() 47 message (SEND_ERROR "-- Required version of SVT-HEVC Lib: ${SVT_VERSION_MAJOR_REQUIRED}.${SVT_VERSION_MINOR_REQUIRED}.${SVT_VERSION_PATCHLEVEL_REQUIRED}; Aborting configure ") 48 endif() 49endif() 50 51find_library(SVT_HEVC_LIBRARY 52if(UNIX) 53 NAMES SvtHevcEnc 54else() 55 NAMES SvtHevcEnc 56endif() 57 HINTS $ENV{SVT_HEVC_LIBRARY_DIR} 58 PATHS ENV 59 DOC "SVT-HEVC library") 60 61 62mark_as_advanced(SVT_HEVC_LIBRARY SVT_HEVC_INCLUDE_DIR SVT_HEVC_LIBRARY_DIR) 63find_package_handle_standard_args(SVTHEVC REQUIRED_VARS SVT_HEVC_LIBRARY SVT_HEVC_INCLUDE_DIR) 64