You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
227 lines
6.1 KiB
227 lines
6.1 KiB
#.rst: |
|
# FindFFMPEG |
|
# ---------- |
|
# |
|
# Find the native FFMPEG includes and library |
|
# |
|
# This module defines:: |
|
# |
|
# FFMPEG_INCLUDE_DIR, where to find avcodec.h, avformat.h ... |
|
# FFMPEG_LIBRARIES, the libraries to link against to use FFMPEG. |
|
# FFMPEG_FOUND, If false, do not try to use FFMPEG. |
|
# |
|
# also defined, but not for general use are:: |
|
# |
|
# FFMPEG_avformat_LIBRARY, where to find the FFMPEG avformat library. |
|
# FFMPEG_avcodec_LIBRARY, where to find the FFMPEG avcodec library. |
|
# |
|
# This is useful to do it this way so that we can always add more libraries |
|
# if needed to ``FFMPEG_LIBRARIES`` if ffmpeg ever changes... |
|
|
|
#============================================================================= |
|
# Copyright: 1993-2008 Ken Martin, Will Schroeder, Bill Lorensen |
|
# |
|
# Distributed under the OSI-approved BSD License (the "License"); |
|
# see accompanying file Copyright.txt for details. |
|
# |
|
# This software is distributed WITHOUT ANY WARRANTY; without even the |
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
|
# See the License for more information. |
|
#============================================================================= |
|
# (To distribute this file outside of YCM, substitute the full |
|
# License text for the above reference.) |
|
|
|
# Originally from VTK project |
|
|
|
|
|
find_path(FFMPEG_INCLUDE_DIR1 avformat.h |
|
$ENV{FFMPEG_DIR} |
|
$ENV{FFMPEG_DIR}/ffmpeg |
|
$ENV{FFMPEG_DIR}/libavformat |
|
$ENV{FFMPEG_DIR}/include/libavformat |
|
$ENV{FFMPEG_DIR}/include/ffmpeg |
|
/usr/local/include/ffmpeg |
|
/usr/include/ffmpeg |
|
/usr/include/libavformat |
|
/usr/include/ffmpeg/libavformat |
|
/usr/include/${CMAKE_LIBRARY_ARCHITECTURE}/libavformat |
|
/usr/local/include/libavformat |
|
) |
|
|
|
find_path(FFMPEG_INCLUDE_DIR2 avutil.h |
|
$ENV{FFMPEG_DIR} |
|
$ENV{FFMPEG_DIR}/ffmpeg |
|
$ENV{FFMPEG_DIR}/libavutil |
|
$ENV{FFMPEG_DIR}/include/libavutil |
|
$ENV{FFMPEG_DIR}/include/ffmpeg |
|
/usr/local/include/ffmpeg |
|
/usr/include/ffmpeg |
|
/usr/include/libavutil |
|
/usr/include/ffmpeg/libavutil |
|
/usr/include/${CMAKE_LIBRARY_ARCHITECTURE}/libavutil |
|
/usr/local/include/libavutil |
|
) |
|
|
|
find_path(FFMPEG_INCLUDE_DIR3 avcodec.h |
|
$ENV{FFMPEG_DIR} |
|
$ENV{FFMPEG_DIR}/ffmpeg |
|
$ENV{FFMPEG_DIR}/libavcodec |
|
$ENV{FFMPEG_DIR}/include/libavcodec |
|
$ENV{FFMPEG_DIR}/include/ffmpeg |
|
/usr/local/include/ffmpeg |
|
/usr/include/ffmpeg |
|
/usr/include/libavcodec |
|
/usr/include/ffmpeg/libavcodec |
|
/usr/include/${CMAKE_LIBRARY_ARCHITECTURE}/libavcodec |
|
/usr/local/include/libavcodec |
|
) |
|
|
|
find_path(FFMPEG_INCLUDE_DIR4 swscale.h |
|
$ENV{FFMPEG_DIR} |
|
$ENV{FFMPEG_DIR}/ffmpeg |
|
$ENV{FFMPEG_DIR}/libswscale |
|
$ENV{FFMPEG_DIR}/include/libswscale |
|
$ENV{FFMPEG_DIR}/include/ffmpeg |
|
/usr/local/include/ffmpeg |
|
/usr/include/ffmpeg |
|
/usr/include/libswscale |
|
/usr/include/ffmpeg/libswscale |
|
/usr/include/${CMAKE_LIBRARY_ARCHITECTURE}/libswscale |
|
/usr/local/include/libswscale |
|
) |
|
|
|
find_path(FFMPEG_INCLUDE_DIR5 avdevice.h |
|
$ENV{FFMPEG_DIR} |
|
$ENV{FFMPEG_DIR}/ffmpeg |
|
$ENV{FFMPEG_DIR}/libavdevice |
|
$ENV{FFMPEG_DIR}/include/libavdevice |
|
$ENV{FFMPEG_DIR}/include/ffmpeg |
|
/usr/local/include/ffmpeg |
|
/usr/include/ffmpeg |
|
/usr/include/libavdevice |
|
/usr/include/ffmpeg/libavdevice |
|
/usr/include/${CMAKE_LIBRARY_ARCHITECTURE}/libavdevice |
|
/usr/local/include/libavdevice |
|
) |
|
|
|
if(FFMPEG_INCLUDE_DIR1) |
|
if(FFMPEG_INCLUDE_DIR2) |
|
if(FFMPEG_INCLUDE_DIR3) |
|
set(FFMPEG_INCLUDE_DIR ${FFMPEG_INCLUDE_DIR1} |
|
${FFMPEG_INCLUDE_DIR2} |
|
${FFMPEG_INCLUDE_DIR3}) |
|
endif() |
|
endif() |
|
endif() |
|
|
|
if(FFMPEG_INCLUDE_DIR4) |
|
set(FFMPEG_INCLUDE_DIR ${FFMPEG_INCLUDE_DIR} |
|
${FFMPEG_INCLUDE_DIR4}) |
|
endif() |
|
|
|
if(FFMPEG_INCLUDE_DIR5) |
|
set(FFMPEG_INCLUDE_DIR ${FFMPEG_INCLUDE_DIR} |
|
${FFMPEG_INCLUDE_DIR5} |
|
${FFMPEG_INCLUDE_DIR5}/..) |
|
endif() |
|
|
|
find_library(FFMPEG_avformat_LIBRARY avformat |
|
$ENV{FFMPEG_DIR} |
|
$ENV{FFMPEG_DIR}/lib |
|
$ENV{FFMPEG_DIR}/libavformat |
|
/usr/local/lib |
|
/usr/lib |
|
) |
|
|
|
find_library(FFMPEG_avcodec_LIBRARY avcodec |
|
$ENV{FFMPEG_DIR} |
|
$ENV{FFMPEG_DIR}/lib |
|
$ENV{FFMPEG_DIR}/libavcodec |
|
/usr/local/lib |
|
/usr/lib |
|
) |
|
|
|
find_library(FFMPEG_avutil_LIBRARY avutil |
|
$ENV{FFMPEG_DIR} |
|
$ENV{FFMPEG_DIR}/lib |
|
$ENV{FFMPEG_DIR}/libavutil |
|
/usr/local/lib |
|
/usr/lib |
|
) |
|
|
|
if(NOT DISABLE_SWSCALE) |
|
find_library(FFMPEG_swscale_LIBRARY swscale |
|
$ENV{FFMPEG_DIR} |
|
$ENV{FFMPEG_DIR}/lib |
|
$ENV{FFMPEG_DIR}/libswscale |
|
/usr/local/lib |
|
/usr/lib |
|
) |
|
endif(NOT DISABLE_SWSCALE) |
|
|
|
find_library(FFMPEG_avdevice_LIBRARY avdevice |
|
$ENV{FFMPEG_DIR} |
|
$ENV{FFMPEG_DIR}/lib |
|
$ENV{FFMPEG_DIR}/libavdevice |
|
/usr/local/lib |
|
/usr/lib |
|
) |
|
|
|
find_library(_FFMPEG_z_LIBRARY_ z |
|
$ENV{FFMPEG_DIR} |
|
$ENV{FFMPEG_DIR}/lib |
|
/usr/local/lib |
|
/usr/lib |
|
) |
|
|
|
|
|
|
|
if(FFMPEG_INCLUDE_DIR) |
|
if(FFMPEG_avformat_LIBRARY) |
|
if(FFMPEG_avcodec_LIBRARY) |
|
if(FFMPEG_avutil_LIBRARY) |
|
set(FFMPEG_FOUND "YES") |
|
set(FFMPEG_LIBRARIES ${FFMPEG_avformat_LIBRARY} |
|
${FFMPEG_avcodec_LIBRARY} |
|
${FFMPEG_avutil_LIBRARY} |
|
) |
|
if(FFMPEG_swscale_LIBRARY) |
|
set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} |
|
${FFMPEG_swscale_LIBRARY} |
|
) |
|
endif() |
|
if(FFMPEG_avdevice_LIBRARY) |
|
set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} |
|
${FFMPEG_avdevice_LIBRARY} |
|
) |
|
endif() |
|
if(_FFMPEG_z_LIBRARY_) |
|
set( FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} |
|
${_FFMPEG_z_LIBRARY_} |
|
) |
|
endif() |
|
endif() |
|
endif() |
|
endif() |
|
endif() |
|
|
|
mark_as_advanced( |
|
FFMPEG_INCLUDE_DIR |
|
FFMPEG_INCLUDE_DIR1 |
|
FFMPEG_INCLUDE_DIR2 |
|
FFMPEG_INCLUDE_DIR3 |
|
FFMPEG_INCLUDE_DIR4 |
|
FFMPEG_INCLUDE_DIR5 |
|
FFMPEG_avformat_LIBRARY |
|
FFMPEG_avcodec_LIBRARY |
|
FFMPEG_avutil_LIBRARY |
|
FFMPEG_swscale_LIBRARY |
|
FFMPEG_avdevice_LIBRARY |
|
_FFMPEG_z_LIBRARY_ |
|
) |
|
|
|
# Set package properties if FeatureSummary was included |
|
if(COMMAND set_package_properties) |
|
set_package_properties(FFMPEG PROPERTIES DESCRIPTION "A complete, cross-platform solution to record, convert and stream audio and video") |
|
set_package_properties(FFMPEG PROPERTIES URL "http://ffmpeg.org/") |
|
endif()
|
|
|