| |
| |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| set(_FFmpeg_ALL_COMPONENTS |
| avcodec |
| avdevice |
| avfilter |
| avformat |
| avutil |
| postproc |
| swresample |
| swscale |
| ) |
|
|
| set(_FFmpeg_DEPS_avcodec avutil) |
| set(_FFmpeg_DEPS_avdevice avcodec avformat avutil) |
| set(_FFmpeg_DEPS_avfilter avutil) |
| set(_FFmpeg_DEPS_avformat avcodec avutil) |
| set(_FFmpeg_DEPS_postproc avutil) |
| set(_FFmpeg_DEPS_swresample avutil) |
| set(_FFmpeg_DEPS_swscale avutil) |
|
|
| function(find_ffmpeg LIBNAME) |
| if(DEFINED ENV{FFMPEG_DIR}) |
| set(FFMPEG_DIR $ENV{FFMPEG_DIR}) |
| endif() |
|
|
| if(FFMPEG_DIR) |
| list(APPEND INCLUDE_PATHS |
| ${FFMPEG_DIR} |
| ${FFMPEG_DIR}/ffmpeg |
| ${FFMPEG_DIR}/lib${LIBNAME} |
| ${FFMPEG_DIR}/include/lib${LIBNAME} |
| ${FFMPEG_DIR}/include/ffmpeg |
| ${FFMPEG_DIR}/include |
| NO_DEFAULT_PATH |
| NO_CMAKE_FIND_ROOT_PATH |
| ) |
| list(APPEND LIB_PATHS |
| ${FFMPEG_DIR} |
| ${FFMPEG_DIR}/lib |
| ${FFMPEG_DIR}/lib${LIBNAME} |
| NO_DEFAULT_PATH |
| NO_CMAKE_FIND_ROOT_PATH |
| ) |
| else() |
| list(APPEND INCLUDE_PATHS |
| /usr/local/include/ffmpeg |
| /usr/local/include/lib${LIBNAME} |
| /usr/include/ffmpeg |
| /usr/include/lib${LIBNAME} |
| /usr/include/ffmpeg/lib${LIBNAME} |
| ) |
|
|
| list(APPEND LIB_PATHS |
| /usr/local/lib |
| /usr/lib |
| ) |
| endif() |
|
|
| find_path(FFmpeg_INCLUDE_${LIBNAME} lib${LIBNAME}/${LIBNAME}.h |
| HINTS ${INCLUDE_PATHS} |
| ) |
|
|
| find_library(FFmpeg_LIBRARY_${LIBNAME} ${LIBNAME} |
| HINTS ${LIB_PATHS} |
| ) |
|
|
| if(NOT FFMPEG_DIR AND (NOT FFmpeg_LIBRARY_${LIBNAME} OR NOT FFmpeg_INCLUDE_${LIBNAME})) |
| |
| find_package(PkgConfig QUIET) |
| pkg_check_modules(FFmpeg_PKGCONFIG_${LIBNAME} QUIET lib${LIBNAME}) |
|
|
| find_path(FFmpeg_INCLUDE_${LIBNAME} lib${LIBNAME}/${LIBNAME}.h |
| ${FFmpeg_PKGCONFIG_${LIBNAME}_INCLUDE_DIRS} |
| ) |
|
|
| find_library(FFmpeg_LIBRARY_${LIBNAME} ${LIBNAME} |
| ${FFmpeg_PKGCONFIG_${LIBNAME}_LIBRARY_DIRS} |
| ) |
| endif() |
|
|
| if(FFmpeg_INCLUDE_${LIBNAME} AND FFmpeg_LIBRARY_${LIBNAME}) |
| set(FFmpeg_INCLUDE_${LIBNAME} "${FFmpeg_INCLUDE_${LIBNAME}}" PARENT_SCOPE) |
| set(FFmpeg_LIBRARY_${LIBNAME} "${FFmpeg_LIBRARY_${LIBNAME}}" PARENT_SCOPE) |
|
|
| |
| foreach(v MAJOR MINOR MICRO) |
| set(FFmpeg_${LIBNAME}_VERSION_${v} 0) |
| endforeach() |
| string(TOUPPER ${LIBNAME} LIBNAME_UPPER) |
| file(STRINGS "${FFmpeg_INCLUDE_${LIBNAME}}/lib${LIBNAME}/version.h" _FFmpeg_VERSION_H_CONTENTS REGEX "#define LIB${LIBNAME_UPPER}_VERSION_(MAJOR|MINOR|MICRO) ") |
| set(_FFmpeg_VERSION_REGEX "([0-9]+)") |
| foreach(v MAJOR MINOR MICRO) |
| if("${_FFmpeg_VERSION_H_CONTENTS}" MATCHES "#define LIB${LIBNAME_UPPER}_VERSION_${v}[\\t ]+${_FFmpeg_VERSION_REGEX}") |
| set(FFmpeg_${LIBNAME}_VERSION_${v} "${CMAKE_MATCH_1}") |
| endif() |
| endforeach() |
| set(FFmpeg_${LIBNAME}_VERSION "${FFmpeg_${LIBNAME}_VERSION_MAJOR}.${FFmpeg_${LIBNAME}_VERSION_MINOR}.${FFmpeg_${LIBNAME}_VERSION_MICRO}") |
| set(FFmpeg_${c}_VERSION "${FFmpeg_${LIBNAME}_VERSION}" PARENT_SCOPE) |
| unset(_FFmpeg_VERSION_REGEX) |
| unset(_FFmpeg_VERSION_H_CONTENTS) |
|
|
| set(FFmpeg_${c}_FOUND TRUE PARENT_SCOPE) |
| if(NOT FFmpeg_FIND_QUIETLY) |
| message("-- Found ${LIBNAME}: ${FFmpeg_INCLUDE_${LIBNAME}} ${FFmpeg_LIBRARY_${LIBNAME}} (version: ${FFmpeg_${LIBNAME}_VERSION})") |
| endif() |
| endif() |
| endfunction() |
|
|
| foreach(c ${_FFmpeg_ALL_COMPONENTS}) |
| find_ffmpeg(${c}) |
| endforeach() |
|
|
| foreach(c ${_FFmpeg_ALL_COMPONENTS}) |
| if(FFmpeg_${c}_FOUND) |
| list(APPEND FFmpeg_INCLUDE_DIR ${FFmpeg_INCLUDE_${c}}) |
| list(APPEND FFmpeg_LIBRARIES ${FFmpeg_LIBRARY_${c}}) |
|
|
| add_library(FFmpeg::${c} IMPORTED UNKNOWN) |
| set_target_properties(FFmpeg::${c} PROPERTIES |
| IMPORTED_LOCATION ${FFmpeg_LIBRARY_${c}} |
| INTERFACE_INCLUDE_DIRECTORIES ${FFmpeg_INCLUDE_${c}} |
| ) |
| if(_FFmpeg_DEPS_${c}) |
| set(deps) |
| foreach(dep ${_FFmpeg_DEPS_${c}}) |
| list(APPEND deps FFmpeg::${dep}) |
| endforeach() |
|
|
| set_target_properties(FFmpeg::${c} PROPERTIES |
| INTERFACE_LINK_LIBRARIES "${deps}" |
| ) |
| unset(deps) |
| endif() |
| endif() |
| endforeach() |
|
|
| if(FFmpeg_INCLUDE_DIR) |
| list(REMOVE_DUPLICATES FFmpeg_INCLUDE_DIR) |
| endif() |
|
|
| foreach(c ${FFmpeg_FIND_COMPONENTS}) |
| list(APPEND _FFmpeg_REQUIRED_VARS FFmpeg_INCLUDE_${c} FFmpeg_LIBRARY_${c}) |
| endforeach() |
|
|
| include(FindPackageHandleStandardArgs) |
| find_package_handle_standard_args(FFmpeg |
| REQUIRED_VARS ${_FFmpeg_REQUIRED_VARS} |
| HANDLE_COMPONENTS |
| ) |
|
|
| foreach(c ${_FFmpeg_ALL_COMPONENTS}) |
| unset(_FFmpeg_DEPS_${c}) |
| endforeach() |
| unset(_FFmpeg_ALL_COMPONENTS) |
| unset(_FFmpeg_REQUIRED_VARS) |
|
|
| include(FindPackageHandleStandardArgs) |
| find_package_handle_standard_args(FFmpeg |
| REQUIRED_VARS |
| FFmpeg_LIBRARIES |
| FFmpeg_INCLUDE_DIR |
| HANDLE_COMPONENTS |
| ) |
|
|