Warning, /multimedia/kid3/src/plugins/acoustidimport/cmake/modules/FindFFmpeg.cmake is written in an unsupported language. File is not indexed.
0001 # Redistribution and use is allowed according to the terms of the BSD license. 0002 # For details see the accompanying COPYING-CMAKE-SCRIPTS file. 0003 # 0004 # FindFFmpeg 0005 # ---------- 0006 # 0007 # Find the native FFmpeg includes and libraries 0008 # 0009 # This module defines the following variables: 0010 # 0011 # FFmpeg_INCLUDE_<component>: where to find <component>.h 0012 # FFmpeg_LIBRARY_<component>: where to find the <component> library 0013 # FFmpeg_INCLUDES: aggregate all the include paths 0014 # FFmpeg_LIBRARIES: aggregate all the paths to the libraries 0015 # FFmpeg_FOUND: True if all components have been found 0016 # 0017 # This module defines the following targets, which are preferred over variables: 0018 # 0019 # FFmpeg::<component>: Target to use <component> directly, with include path, 0020 # library and dependencies set up. If you are using a static build, you are 0021 # responsible for adding any external dependencies (such as zlib, bzlib...). 0022 # 0023 # <component> can be one of: 0024 # avcodec 0025 # avdevice 0026 # avfilter 0027 # avformat 0028 # postproc 0029 # swresample 0030 # swscale 0031 # 0032 0033 set(_FFmpeg_ALL_COMPONENTS 0034 avcodec 0035 avdevice 0036 avfilter 0037 avformat 0038 avutil 0039 postproc 0040 swresample 0041 swscale 0042 ) 0043 0044 set(_FFmpeg_DEPS_avcodec avutil) 0045 set(_FFmpeg_DEPS_avdevice avcodec avformat avutil) 0046 set(_FFmpeg_DEPS_avfilter avutil) 0047 set(_FFmpeg_DEPS_avformat avcodec avutil) 0048 set(_FFmpeg_DEPS_postproc avutil) 0049 set(_FFmpeg_DEPS_swresample avutil) 0050 set(_FFmpeg_DEPS_swscale avutil) 0051 0052 function(find_ffmpeg LIBNAME) 0053 if(DEFINED ENV{FFMPEG_DIR}) 0054 set(FFMPEG_DIR $ENV{FFMPEG_DIR}) 0055 endif() 0056 0057 if(FFMPEG_DIR) 0058 list(APPEND INCLUDE_PATHS 0059 ${FFMPEG_DIR} 0060 ${FFMPEG_DIR}/ffmpeg 0061 ${FFMPEG_DIR}/lib${LIBNAME} 0062 ${FFMPEG_DIR}/include/lib${LIBNAME} 0063 ${FFMPEG_DIR}/include/ffmpeg 0064 ${FFMPEG_DIR}/include 0065 NO_DEFAULT_PATH 0066 NO_CMAKE_FIND_ROOT_PATH 0067 ) 0068 list(APPEND LIB_PATHS 0069 ${FFMPEG_DIR} 0070 ${FFMPEG_DIR}/lib 0071 ${FFMPEG_DIR}/lib${LIBNAME} 0072 NO_DEFAULT_PATH 0073 NO_CMAKE_FIND_ROOT_PATH 0074 ) 0075 else() 0076 list(APPEND INCLUDE_PATHS 0077 /usr/local/include/ffmpeg 0078 /usr/local/include/lib${LIBNAME} 0079 /usr/include/ffmpeg 0080 /usr/include/lib${LIBNAME} 0081 /usr/include/ffmpeg/lib${LIBNAME} 0082 ) 0083 0084 list(APPEND LIB_PATHS 0085 /usr/local/lib 0086 /usr/lib 0087 ) 0088 endif() 0089 0090 find_path(FFmpeg_INCLUDE_${LIBNAME} lib${LIBNAME}/${LIBNAME}.h 0091 HINTS ${INCLUDE_PATHS} 0092 ) 0093 0094 find_library(FFmpeg_LIBRARY_${LIBNAME} ${LIBNAME} 0095 HINTS ${LIB_PATHS} 0096 ) 0097 0098 if(NOT FFMPEG_DIR AND (NOT FFmpeg_LIBRARY_${LIBNAME} OR NOT FFmpeg_INCLUDE_${LIBNAME})) 0099 # Didn't find it in the usual paths, try pkg-config 0100 find_package(PkgConfig QUIET) 0101 pkg_check_modules(FFmpeg_PKGCONFIG_${LIBNAME} QUIET lib${LIBNAME}) 0102 0103 find_path(FFmpeg_INCLUDE_${LIBNAME} lib${LIBNAME}/${LIBNAME}.h 0104 ${FFmpeg_PKGCONFIG_${LIBNAME}_INCLUDE_DIRS} 0105 ) 0106 0107 find_library(FFmpeg_LIBRARY_${LIBNAME} ${LIBNAME} 0108 ${FFmpeg_PKGCONFIG_${LIBNAME}_LIBRARY_DIRS} 0109 ) 0110 endif() 0111 0112 if(FFmpeg_INCLUDE_${LIBNAME} AND FFmpeg_LIBRARY_${LIBNAME}) 0113 set(FFmpeg_INCLUDE_${LIBNAME} "${FFmpeg_INCLUDE_${LIBNAME}}" PARENT_SCOPE) 0114 set(FFmpeg_LIBRARY_${LIBNAME} "${FFmpeg_LIBRARY_${LIBNAME}}" PARENT_SCOPE) 0115 set(FFmpeg_${c}_FOUND TRUE PARENT_SCOPE) 0116 if(NOT FFmpeg_FIND_QUIETLY) 0117 message("-- Found ${LIBNAME}: ${FFmpeg_INCLUDE_${LIBNAME}} ${FFmpeg_LIBRARY_${LIBNAME}}") 0118 endif() 0119 endif() 0120 endfunction() 0121 0122 foreach(c ${_FFmpeg_ALL_COMPONENTS}) 0123 find_ffmpeg(${c}) 0124 endforeach() 0125 0126 foreach(c ${_FFmpeg_ALL_COMPONENTS}) 0127 if(FFmpeg_${c}_FOUND) 0128 list(APPEND FFmpeg_INCLUDES ${FFmpeg_INCLUDE_${c}}) 0129 list(APPEND FFmpeg_LIBRARIES ${FFmpeg_LIBRARY_${c}}) 0130 0131 add_library(FFmpeg::${c} IMPORTED UNKNOWN) 0132 set_target_properties(FFmpeg::${c} PROPERTIES 0133 IMPORTED_LOCATION ${FFmpeg_LIBRARY_${c}} 0134 INTERFACE_INCLUDE_DIRECTORIES ${FFmpeg_INCLUDE_${c}} 0135 ) 0136 if(_FFmpeg_DEPS_${c}) 0137 set(deps) 0138 foreach(dep ${_FFmpeg_DEPS_${c}}) 0139 list(APPEND deps FFmpeg::${dep}) 0140 endforeach() 0141 0142 set_target_properties(FFmpeg::${c} PROPERTIES 0143 INTERFACE_LINK_LIBRARIES "${deps}" 0144 ) 0145 unset(deps) 0146 endif() 0147 endif() 0148 endforeach() 0149 0150 if(FFmpeg_INCLUDES) 0151 list(REMOVE_DUPLICATES FFmpeg_INCLUDES) 0152 endif() 0153 0154 foreach(c ${FFmpeg_FIND_COMPONENTS}) 0155 list(APPEND _FFmpeg_REQUIRED_VARS FFmpeg_INCLUDE_${c} FFmpeg_LIBRARY_${c}) 0156 endforeach() 0157 0158 include(FindPackageHandleStandardArgs) 0159 find_package_handle_standard_args(FFmpeg 0160 REQUIRED_VARS ${_FFmpeg_REQUIRED_VARS} 0161 HANDLE_COMPONENTS 0162 ) 0163 0164 foreach(c ${_FFmpeg_ALL_COMPONENTS}) 0165 unset(_FFmpeg_DEPS_${c}) 0166 endforeach() 0167 unset(_FFmpeg_ALL_COMPONENTS) 0168 unset(_FFmpeg_REQUIRED_VARS)