101 lines
2.5 KiB
CMake
101 lines
2.5 KiB
CMake
# - Try to find ffmpeg libraries (libavcodec, libavformat and libavutil)
|
|
# Once done this will define
|
|
#
|
|
# FFMPEG_FOUND - system has ffmpeg or libav
|
|
# FFMPEG_INCLUDE_DIR - the ffmpeg include directory
|
|
# FFMPEG_LIBRARIES - Link these to use ffmpeg
|
|
# FFMPEG_LIBAVCODEC
|
|
# FFMPEG_LIBAVFORMAT
|
|
# FFMPEG_LIBAVUTIL
|
|
#
|
|
# Copyright (c) 2008 Andreas Schneider <mail@cynapses.org>
|
|
# Modified for other libraries by Lasse Kärkkäinen <tronic>
|
|
# Modified for Hedgewars by Stepik777
|
|
# Modified for FFmpeg-example Tuukka Pasanen 2018
|
|
# Modified for yuzu toastUnlimted 2020
|
|
#
|
|
# Redistribution and use is allowed according to the terms of the New
|
|
# BSD license.
|
|
#
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
|
|
find_package_handle_standard_args(FFMPEG
|
|
FOUND_VAR FFMPEG_FOUND
|
|
REQUIRED_VARS
|
|
FFMPEG_LIBRARY
|
|
FFMPEG_INCLUDE_DIR
|
|
VERSION_VAR FFMPEG_VERSION
|
|
)
|
|
|
|
if(FFMPEG_LIBRARIES AND FFMPEG_INCLUDE_DIR)
|
|
# in cache already
|
|
set(FFMPEG_FOUND TRUE)
|
|
else()
|
|
# use pkg-config to get the directories and then use these values
|
|
# in the FIND_PATH() and FIND_LIBRARY() calls
|
|
find_package(PkgConfig)
|
|
if(PKG_CONFIG_FOUND)
|
|
pkg_check_modules(_FFMPEG_AVCODEC libavcodec)
|
|
pkg_check_modules(_FFMPEG_AVUTIL libavutil)
|
|
pkg_check_modules(_FFMPEG_SWSCALE libswscale)
|
|
endif()
|
|
|
|
find_path(FFMPEG_AVCODEC_INCLUDE_DIR
|
|
NAMES libavcodec/avcodec.h
|
|
PATHS ${_FFMPEG_AVCODEC_INCLUDE_DIRS}
|
|
/usr/include
|
|
/usr/local/include
|
|
/opt/local/include
|
|
/sw/include
|
|
PATH_SUFFIXES ffmpeg libav)
|
|
|
|
find_library(FFMPEG_LIBAVCODEC
|
|
NAMES avcodec
|
|
PATHS ${_FFMPEG_AVCODEC_LIBRARY_DIRS}
|
|
/usr/lib
|
|
/usr/local/lib
|
|
/opt/local/lib
|
|
/sw/lib)
|
|
|
|
find_library(FFMPEG_LIBAVUTIL
|
|
NAMES avutil
|
|
PATHS ${_FFMPEG_AVUTIL_LIBRARY_DIRS}
|
|
/usr/lib
|
|
/usr/local/lib
|
|
/opt/local/lib
|
|
/sw/lib)
|
|
|
|
find_library(FFMPEG_LIBSWSCALE
|
|
NAMES swscale
|
|
PATHS ${_FFMPEG_SWSCALE_LIBRARY_DIRS}
|
|
/usr/lib
|
|
/usr/local/lib
|
|
/opt/local/lib
|
|
/sw/lib)
|
|
|
|
if(FFMPEG_LIBAVCODEC AND FFMPEG_LIBAVUTIL AND FFMPEG_LIBSWSCALE)
|
|
set(FFMPEG_FOUND TRUE)
|
|
endif()
|
|
|
|
if(FFMPEG_FOUND)
|
|
set(FFMPEG_INCLUDE_DIR ${FFMPEG_AVCODEC_INCLUDE_DIR})
|
|
set(FFMPEG_LIBRARIES
|
|
${FFMPEG_LIBAVCODEC}
|
|
${FFMPEG_LIBAVUTIL}
|
|
${FFMPEG_LIBSWSCALE})
|
|
endif()
|
|
|
|
if(FFMPEG_FOUND)
|
|
if(NOT FFMPEG_FIND_QUIETLY)
|
|
message(STATUS
|
|
"Found FFMPEG or Libav: ${FFMPEG_LIBRARIES}, ${FFMPEG_INCLUDE_DIR}")
|
|
endif()
|
|
else()
|
|
if(FFMPEG_FIND_REQUIRED)
|
|
message(FATAL_ERROR
|
|
"Could not find libavcodec or libavutil or libswscale")
|
|
endif()
|
|
endif()
|
|
endif()
|