| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 | 
							
- #[==[
 
- Provides the following variables:
 
-   * `ffmpeg_INCLUDE_DIRS`: Include directories necessary to use FFMPEG.
 
-   * `ffmpeg_LIBRARIES`: Libraries necessary to use FFMPEG. Note that this only
 
-     includes libraries for the components requested.
 
-   * `ffmpeg_VERSION`: The version of FFMPEG found.
 
- The following components are supported:
 
-   * `avcodec`
 
-   * `avdevice`
 
-   * `avfilter`
 
-   * `avformat`
 
-   * `avresample`
 
-   * `avutil`
 
-   * `swresample`
 
-   * `swscale`
 
- For each component, the following are provided:
 
-   * `ffmpeg_<component>_FOUND`: Libraries for the component.
 
-   * `ffmpeg_<component>_INCLUDE_DIRS`: Include directories for
 
-     the component.
 
-   * `ffmpeg_<component>_LIBRARIES`: Libraries for the component.
 
-   * `ffmpeg::<component>`: A target to use with `target_link_libraries`.
 
- Note that only components requested with `COMPONENTS` or `OPTIONAL_COMPONENTS`
 
- are guaranteed to set these variables or provide targets.
 
- #]==]
 
- function (_ffmpeg_find component headername)
 
-   find_path("ffmpeg_${component}_INCLUDE_DIR"
 
-     NAMES
 
-       "lib${component}/${headername}"
 
-     PATHS
 
-       "${ffmpeg_ROOT}/include"
 
-       ~/Library/Frameworks
 
-       /Library/Frameworks
 
-       /usr/local/include
 
-       /usr/include
 
-       /sw/include # Fink
 
-       /opt/local/include # DarwinPorts
 
-       /opt/csw/include # Blastwave
 
-       /opt/include
 
-       /usr/freeware/include
 
-     PATH_SUFFIXES
 
-       ffmpeg
 
-     DOC "FFMPEG's ${component} include directory")
 
-   mark_as_advanced("ffmpeg_${component}_INCLUDE_DIR")
 
-   # On Windows, static FFMPEG is sometimes built as `lib<name>.a`.
 
-   if (WIN32)
 
-     list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES ".a" ".lib")
 
-     list(APPEND CMAKE_FIND_LIBRARY_PREFIXES "" "lib")
 
-   endif ()
 
-   find_library("ffmpeg_${component}_LIBRARY"
 
-     NAMES
 
-       "${component}"
 
-     PATHS
 
-       "${ffmpeg_ROOT}/lib"
 
-       ~/Library/Frameworks
 
-       /Library/Frameworks
 
-       /usr/local/lib
 
-       /usr/local/lib64
 
-       /usr/lib
 
-       /usr/lib64
 
-       /sw/lib
 
-       /opt/local/lib
 
-       /opt/csw/lib
 
-       /opt/lib
 
-       /usr/freeware/lib64
 
-       "${ffmpeg_ROOT}/bin"
 
-     DOC "FFMPEG's ${component} library")
 
-   mark_as_advanced("ffmpeg_${component}_LIBRARY")
 
-   if (ffmpeg_${component}_LIBRARY AND ffmpeg_${component}_INCLUDE_DIR)
 
-     set(_deps_found TRUE)
 
-     set(_deps_link)
 
-     foreach (_ffmpeg_dep IN LISTS ARGN)
 
-       if (TARGET "ffmpeg::${_ffmpeg_dep}")
 
-         list(APPEND _deps_link "ffmpeg::${_ffmpeg_dep}")
 
-       else ()
 
-         set(_deps_found FALSE)
 
-       endif ()
 
-     endforeach ()
 
-     if (_deps_found)
 
-       if (NOT TARGET "ffmpeg::${component}")
 
-         add_library("ffmpeg::${component}" UNKNOWN IMPORTED)
 
-         set_target_properties("ffmpeg::${component}" PROPERTIES
 
-           IMPORTED_LOCATION "${ffmpeg_${component}_LIBRARY}"
 
-           INTERFACE_INCLUDE_DIRECTORIES "${ffmpeg_${component}_INCLUDE_DIR}"
 
-           IMPORTED_LINK_INTERFACE_LIBRARIES "${_deps_link}")
 
-       endif ()
 
-       set("ffmpeg_${component}_FOUND" 1
 
-         PARENT_SCOPE)
 
-       set(version_header_path "${ffmpeg_${component}_INCLUDE_DIR}/lib${component}/version.h")
 
-       if (EXISTS "${version_header_path}")
 
-         string(TOUPPER "${component}" component_upper)
 
-         file(STRINGS "${version_header_path}" version
 
-           REGEX "#define  *LIB${component_upper}_VERSION_(MAJOR|MINOR|MICRO) ")
 
-         string(REGEX REPLACE ".*_MAJOR *\([0-9]*\).*" "\\1" major "${version}")
 
-         string(REGEX REPLACE ".*_MINOR *\([0-9]*\).*" "\\1" minor "${version}")
 
-         string(REGEX REPLACE ".*_MICRO *\([0-9]*\).*" "\\1" micro "${version}")
 
-         if (NOT major STREQUAL "" AND
 
-             NOT minor STREQUAL "" AND
 
-             NOT micro STREQUAL "")
 
-           set("ffmpeg_${component}_VERSION" "${major}.${minor}.${micro}"
 
-             PARENT_SCOPE)
 
-         endif ()
 
-       endif ()
 
-     else ()
 
-       set("ffmpeg_${component}_FOUND" 0
 
-         PARENT_SCOPE)
 
-       set(what)
 
-       if (NOT ffmpeg_${component}_LIBRARY)
 
-         set(what "library")
 
-       endif ()
 
-       if (NOT ffmpeg_${component}_INCLUDE_DIR)
 
-         if (what)
 
-           string(APPEND what " or headers")
 
-         else ()
 
-           set(what "headers")
 
-         endif ()
 
-       endif ()
 
-       set("ffmpeg_${component}_NOT_FOUND_MESSAGE"
 
-         "Could not find the ${what} for ${component}."
 
-         PARENT_SCOPE)
 
-     endif ()
 
-   endif ()
 
- endfunction ()
 
- _ffmpeg_find(avutil     avutil.h)
 
- _ffmpeg_find(avresample avresample.h
 
-   avutil)
 
- _ffmpeg_find(swresample swresample.h
 
-   avutil)
 
- _ffmpeg_find(swscale    swscale.h
 
-   avutil)
 
- _ffmpeg_find(avcodec    avcodec.h
 
-   avutil)
 
- _ffmpeg_find(avformat   avformat.h
 
-   avcodec avutil)
 
- _ffmpeg_find(avfilter   avfilter.h
 
-   avutil)
 
- _ffmpeg_find(avdevice   avdevice.h
 
-   avformat avutil)
 
- if (TARGET ffmpeg::avutil)
 
-   set(_ffmpeg_version_header_path "${ffmpeg_avutil_INCLUDE_DIR}/libavutil/ffversion.h")
 
-   if (EXISTS "${_ffmpeg_version_header_path}")
 
-     file(STRINGS "${_ffmpeg_version_header_path}" _ffmpeg_version
 
-       REGEX "FFMPEG_VERSION")
 
-     string(REGEX REPLACE ".*\"n?\(.*\)\"" "\\1" ffmpeg_VERSION "${_ffmpeg_version}")
 
-     unset(_ffmpeg_version)
 
-   else ()
 
-     set(ffmpeg_VERSION ffmpeg_VERSION-NOTFOUND)
 
-   endif ()
 
-   unset(_ffmpeg_version_header_path)
 
- endif ()
 
- set(ffmpeg_INCLUDE_DIRS)
 
- set(ffmpeg_LIBRARIES)
 
- set(_ffmpeg_required_vars)
 
- foreach (_ffmpeg_component IN LISTS ffmpeg_FIND_COMPONENTS)
 
-   if (TARGET "ffmpeg::${_ffmpeg_component}")
 
-     set(ffmpeg_${_ffmpeg_component}_INCLUDE_DIRS
 
-       "${ffmpeg_${_ffmpeg_component}_INCLUDE_DIR}")
 
-     set(ffmpeg_${_ffmpeg_component}_LIBRARIES
 
-       "${ffmpeg_${_ffmpeg_component}_LIBRARY}")
 
-     list(APPEND ffmpeg_INCLUDE_DIRS
 
-       "${ffmpeg_${_ffmpeg_component}_INCLUDE_DIRS}")
 
-     list(APPEND ffmpeg_LIBRARIES
 
-       "${ffmpeg_${_ffmpeg_component}_LIBRARIES}")
 
-     if (FFMPEG_FIND_REQUIRED_${_ffmpeg_component})
 
-       list(APPEND _ffmpeg_required_vars
 
-         "ffmpeg_${_ffmpeg_required_vars}_INCLUDE_DIRS"
 
-         "ffmpeg_${_ffmpeg_required_vars}_LIBRARIES")
 
-     endif ()
 
-   endif ()
 
- endforeach ()
 
- unset(_ffmpeg_component)
 
- if (ffmpeg_INCLUDE_DIRS)
 
-   list(REMOVE_DUPLICATES ffmpeg_INCLUDE_DIRS)
 
- endif ()
 
- include(FindPackageHandleStandardArgs)
 
- find_package_handle_standard_args(ffmpeg
 
-   REQUIRED_VARS ffmpeg_INCLUDE_DIRS ffmpeg_LIBRARIES ${_ffmpeg_required_vars}
 
-   VERSION_VAR ffmpeg_VERSION
 
-   HANDLE_COMPONENTS)
 
- unset(_ffmpeg_required_vars)
 
 
  |