From 7aea1acf4490b7d68f6915cf63d28c1f18b49b5d Mon Sep 17 00:00:00 2001 From: gaa-cifasis Date: Sun, 18 Feb 2018 18:30:27 -0300 Subject: added libav to cmake --- FindLibAV.cmake | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 FindLibAV.cmake (limited to 'FindLibAV.cmake') diff --git a/FindLibAV.cmake b/FindLibAV.cmake new file mode 100644 index 0000000..26b5c14 --- /dev/null +++ b/FindLibAV.cmake @@ -0,0 +1,87 @@ +# vim: ts=2 sw=2 +# - Try to find the required libav components(default: AVFORMAT, AVUTIL, AVCODEC) +# +# Once done this will define +# LIBAV_FOUND - System has the all required components. +# LIBAV_INCLUDE_DIRS - Include directory necessary for using the required components headers. +# LIBAV_LIBRARIES - Link these to use the required libav components. +# +# For each of the components it will additionally set. +# - AVCODEC +# - AVDEVICE +# - AVFILTER +# - AVFORMAT +# - AVRESAMPLE +# - AVUTIL +# - SWSCALE +# the following variables will be defined +# _FOUND - System has +# _INCLUDE_DIRS - Include directory necessary for using the headers +# _LIBRARIES - Link these to use +# _VERSION_STRING - The component's version +# +# Copyright (c) 2006, Matthias Kretz, +# Copyright (c) 2008, Alexander Neundorf, +# Copyright (c) 2011, Michael Jansen, +# Copyright (c) 2013,2015 Stephen Baker +# Copyright (c) 2015, Alexander Bessman +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +include(FindPackageHandleStandardArgs) +include(${CMAKE_CURRENT_LIST_DIR}/CMakeFFmpegLibavMacros.cmake) + +# The default components were taken from a survey over other FindLIBAV.cmake files +if(NOT LibAV_FIND_COMPONENTS) + set(LibAV_FIND_COMPONENTS AVCODEC AVFORMAT AVUTIL) +endif() + +# Check for cached results. If there are skip the costly part. +if(NOT LIBAV_LIBRARIES) + + # Check for all possible component. + find_component(AVCODEC avcodec libavcodec/avcodec.h libavcodec/version.h) + find_component(AVFORMAT avformat libavformat/avformat.h libavformat/version.h) + find_component(AVDEVICE avdevice libavdevice/avdevice.h libavdevice/version.h) + find_component(AVFILTER avfilter libavfilter/avfilter.h libavfilter/version.h) + find_component(AVRESAMPLE avresample libavresample/avresample.h libavresample/version.h) + find_component(AVUTIL avutil libavutil/avutil.h libavutil/version.h) + find_component(SWSCALE swscale libswscale/swscale.h libswscale/version.h) + + # Check if the required components were found and add their stuff to the LIBAV_* vars. + foreach(_component ${LibAV_FIND_COMPONENTS}) + if(${_component}_FOUND) + # message(STATUS "Required component ${_component} present.") + set(LIBAV_LIBRARIES ${LIBAV_LIBRARIES} ${${_component}_LIBRARIES}) + list(APPEND LIBAV_INCLUDE_DIRS ${${_component}_INCLUDE_DIRS}) + else() + # message(STATUS "Required component ${_component} missing.") + endif() + endforeach() + + # Build the include path with duplicates removed. + if(LIBAV_INCLUDE_DIRS) + list(REMOVE_DUPLICATES LIBAV_INCLUDE_DIRS) + endif() + + # cache the vars. + set(LIBAV_INCLUDE_DIRS ${LIBAV_INCLUDE_DIRS} CACHE STRING "The LibAV include directories." FORCE) + set(LIBAV_LIBRARIES ${LIBAV_LIBRARIES} CACHE STRING "The LibAV libraries." FORCE) + + mark_as_advanced(LIBAV_INCLUDE_DIRS LIBAV_LIBRARIES) +endif() + +# Now set the noncached _FOUND vars for the components. +foreach(_component AVCODEC AVDEVICE AVFILTER AVFORMAT AVRESAMPLE AVUTIL SWSCALE) + set_component_found(${_component}) +endforeach() + +# Compile the list of required vars +set(_LibAV_REQUIRED_VARS LIBAV_LIBRARIES LIBAV_INCLUDE_DIRS) +foreach(_component ${LibAV_FIND_COMPONENTS}) + list(APPEND _LibAV_REQUIRED_VARS ${_component}_LIBRARIES ${_component}_INCLUDE_DIRS) +endforeach() + +# Give a nice error message if some of the required vars are missing. +find_package_handle_standard_args(LibAV DEFAULT_MSG ${_LibAV_REQUIRED_VARS}) -- cgit v1.3