Merge branch 'master' of github.com:FreeRDP/FreeRDP
[platform/upstream/freerdp.git] / cmake / FindFFmpeg.cmake
1 # - Try to find FFmpeg
2 # Using Pkg-config if available for path
3 #
4 #  FFMPEG_FOUND        - all required ffmpeg components found on system
5 #  FFMPEG_INCLUDE_DIRS  - combined include directories
6 #  FFMPEG_LIBRARIES    - combined libraries to link
7
8 set(REQUIRED_AVCODEC_VERSION 0.8)
9 set(REQUIRED_AVCODEC_API_VERSION 53.25.0)
10
11 include(FindPkgConfig)
12
13 if(PKG_CONFIG_FOUND)
14         pkg_check_modules(AVCODEC libavcodec)
15         pkg_check_modules(AVUTIL libavutil)
16 endif()
17
18 # avcodec
19 find_path(AVCODEC_INCLUDE_DIR libavcodec/avcodec.h PATHS ${AVCODEC_INCLUDE_DIRS})
20 find_library(AVCODEC_LIBRARY avcodec PATHS ${AVCODEC_LIBRARY_DIRS})
21
22 # avutil
23 find_path(AVUTIL_INCLUDE_DIR libavutil/avutil.h PATHS ${AVUTIL_INCLUDE_DIRS})
24 find_library(AVUTIL_LIBRARY avutil PATHS ${AVUTIL_LIBRARY_DIRS})
25
26 if(AVCODEC_INCLUDE_DIR AND AVCODEC_LIBRARY)
27         set(AVCODEC_FOUND TRUE)
28 endif()
29
30 if(AVUTIL_INCLUDE_DIR AND AVUTIL_LIBRARY)
31         set(AVUTIL_FOUND TRUE)
32 endif()
33
34 include(FindPackageHandleStandardArgs)
35 FIND_PACKAGE_HANDLE_STANDARD_ARGS(FFmpeg DEFAULT_MSG AVUTIL_FOUND AVCODEC_FOUND)
36
37 if (AVCODEC_VERSION)
38         if (${AVCODEC_VERSION} VERSION_LESS ${REQUIRED_AVCODEC_API_VERSION})
39                 message(FATAL_ERROR "libavcodec version >= ${REQUIRED_AVCODEC_VERSION} (API >= ${REQUIRED_AVCODEC_API_VERSION}) is required")
40         endif()
41 else()
42                 message("Note: To build libavcodec version >= ${REQUIRED_AVCODEC_VERSION} (API >= ${REQUIRED_AVCODEC_API_VERSION}) is required")
43 endif()
44
45 if(FFMPEG_FOUND)
46         set(FFMPEG_INCLUDE_DIRS ${AVCODEC_INCLUDE_DIR} ${AVUTIL_INCLUDE_DIR})
47         set(FFMPEG_LIBRARIES ${AVCODEC_LIBRARY} ${AVUTIL_LIBRARY})
48 endif()
49
50 mark_as_advanced(FFMPEG_INCLUDE_DIRS FFMPEG_LIBRARIES)
51