cmake_modules/FindFFMPEG.cmake
author koda
Tue, 18 Dec 2012 03:07:45 +0100
changeset 8310 a98c349bc06b
parent 8285 a1500ffdc343
child 8662 bfcc09f2accc
permissions -rw-r--r--
minor adjustments to libengine, moc is correctly created as definitions are set before calling it, params are better numbered and we don't subclass qthread but rather use moveToThread()
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7534
ccb9c2906160 fix FindFFMPEG
Stepan777 <stepik-777@mail.ru>
parents: 7528
diff changeset
     1
# - Try to find ffmpeg libraries (libavcodec, libavformat and libavutil)
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
     2
# Once done this will define
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
     3
#
7540
cc6c656f70b5 cmake scripts
Stepan777 <stepik-777@mail.ru>
parents: 7538
diff changeset
     4
#  FFMPEG_FOUND - system has ffmpeg or libav
7534
ccb9c2906160 fix FindFFMPEG
Stepan777 <stepik-777@mail.ru>
parents: 7528
diff changeset
     5
#  FFMPEG_INCLUDE_DIR - the ffmpeg include directory
ccb9c2906160 fix FindFFMPEG
Stepan777 <stepik-777@mail.ru>
parents: 7528
diff changeset
     6
#  FFMPEG_LIBRARIES - Link these to use ffmpeg
7538
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
     7
#  FFMPEG_LIBAVCODEC
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
     8
#  FFMPEG_LIBAVFORMAT
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
     9
#  FFMPEG_LIBAVUTIL
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    10
#
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    11
#  Copyright (c) 2008 Andreas Schneider <mail@cynapses.org>
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    12
#  Modified for other libraries by Lasse Kärkkäinen <tronic>
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    13
#  Modified for Hedgewars by Stepik777
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    14
#
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    15
#  Redistribution and use is allowed according to the terms of the New
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    16
#  BSD license.
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    17
#
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    18
8285
a1500ffdc343 cmake set variable and typo
koda
parents: 8283
diff changeset
    19
set(FFMPEG_FOUND FALSE)
a1500ffdc343 cmake set variable and typo
koda
parents: 8283
diff changeset
    20
7534
ccb9c2906160 fix FindFFMPEG
Stepan777 <stepik-777@mail.ru>
parents: 7528
diff changeset
    21
if (FFMPEG_LIBRARIES AND FFMPEG_INCLUDE_DIR)
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    22
  # in cache already
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    23
  set(FFMPEG_FOUND TRUE)
7534
ccb9c2906160 fix FindFFMPEG
Stepan777 <stepik-777@mail.ru>
parents: 7528
diff changeset
    24
else (FFMPEG_LIBRARIES AND FFMPEG_INCLUDE_DIR)
8283
af97cdbb7713 cmake verbosity/documentation/cleanup/formatting
koda
parents: 8279
diff changeset
    25
  # silence output option
af97cdbb7713 cmake verbosity/documentation/cleanup/formatting
koda
parents: 8279
diff changeset
    26
  if (FFMPEG_FIND_QUIETLY)
af97cdbb7713 cmake verbosity/documentation/cleanup/formatting
koda
parents: 8279
diff changeset
    27
    set(VERBOSITY "QUIET")
af97cdbb7713 cmake verbosity/documentation/cleanup/formatting
koda
parents: 8279
diff changeset
    28
  endif ()
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    29
  # use pkg-config to get the directories and then use these values
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    30
  # in the FIND_PATH() and FIND_LIBRARY() calls
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    31
  find_package(PkgConfig)
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    32
  if (PKG_CONFIG_FOUND)
8283
af97cdbb7713 cmake verbosity/documentation/cleanup/formatting
koda
parents: 8279
diff changeset
    33
    pkg_check_modules(_FFMPEG_AVCODEC libavcodec ${VERBOSITY})
af97cdbb7713 cmake verbosity/documentation/cleanup/formatting
koda
parents: 8279
diff changeset
    34
    pkg_check_modules(_FFMPEG_AVFORMAT libavformat ${VERBOSITY})
af97cdbb7713 cmake verbosity/documentation/cleanup/formatting
koda
parents: 8279
diff changeset
    35
    pkg_check_modules(_FFMPEG_AVUTIL libavutil ${VERBOSITY})
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    36
  endif (PKG_CONFIG_FOUND)
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    37
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    38
  find_path(FFMPEG_AVCODEC_INCLUDE_DIR
7534
ccb9c2906160 fix FindFFMPEG
Stepan777 <stepik-777@mail.ru>
parents: 7528
diff changeset
    39
    NAMES libavcodec/avcodec.h
7816
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    40
    PATHS ${_FFMPEG_AVCODEC_INCLUDE_DIRS}
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    41
        /usr/include /usr/local/include #system level
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    42
        /opt/local/include #macports
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    43
        /sw/include #fink
7534
ccb9c2906160 fix FindFFMPEG
Stepan777 <stepik-777@mail.ru>
parents: 7528
diff changeset
    44
    PATH_SUFFIXES ffmpeg libav
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    45
  )
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    46
7538
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
    47
  find_library(FFMPEG_LIBAVCODEC
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    48
    NAMES avcodec
7816
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    49
    PATHS ${_FFMPEG_AVCODEC_LIBRARY_DIRS}
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    50
        /usr/lib /usr/local/lib #system level
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    51
        /opt/local/lib #macports
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    52
        /sw/lib #fink
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    53
  )
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    54
7538
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
    55
  find_library(FFMPEG_LIBAVFORMAT
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    56
    NAMES avformat
7816
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    57
    PATHS ${_FFMPEG_AVFORMAT_LIBRARY_DIRS}
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    58
        /usr/lib /usr/local/lib #system level
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    59
        /opt/local/lib #macports
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    60
        /sw/lib #fink
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    61
  )
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    62
7538
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
    63
  find_library(FFMPEG_LIBAVUTIL
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    64
    NAMES avutil
7816
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    65
    PATHS ${_FFMPEG_AVUTIL_LIBRARY_DIRS}
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    66
        /usr/lib /usr/local/lib #system level
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    67
        /opt/local/lib #macports
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    68
        /sw/lib #fink
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    69
  )
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    70
7538
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
    71
  if (FFMPEG_LIBAVCODEC AND FFMPEG_LIBAVFORMAT)
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    72
    set(FFMPEG_FOUND TRUE)
7538
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
    73
  endif()
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    74
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    75
  if (FFMPEG_FOUND)
7617
0ac281e1b58b Make ffmpeg optional for frontend
unc0rr
parents: 7540
diff changeset
    76
    set(FFMPEG_INCLUDE_DIR ${FFMPEG_AVCODEC_INCLUDE_DIR})
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    77
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    78
    set(FFMPEG_LIBRARIES
7538
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
    79
      ${FFMPEG_LIBAVCODEC}
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
    80
      ${FFMPEG_LIBAVFORMAT}
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
    81
      ${FFMPEG_LIBAVUTIL}
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    82
    )
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    83
  endif (FFMPEG_FOUND)
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    84
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    85
  if (FFMPEG_FOUND)
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    86
    if (NOT FFMPEG_FIND_QUIETLY)
7816
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    87
      message(STATUS "Found FFMPEG/LibAV: ${FFMPEG_LIBRARIES}, ${FFMPEG_INCLUDE_DIR}")
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    88
    endif (NOT FFMPEG_FIND_QUIETLY)
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    89
  else (FFMPEG_FOUND)
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    90
    if (FFMPEG_FIND_REQUIRED)
7816
a25e943dd4b0 finally videorec on osx
koda
parents: 7617
diff changeset
    91
      message(FATAL_ERROR "Could NOT find libavcodec or libavformat or libavutil")
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    92
    endif (FFMPEG_FIND_REQUIRED)
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    93
  endif (FFMPEG_FOUND)
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    94
7534
ccb9c2906160 fix FindFFMPEG
Stepan777 <stepik-777@mail.ru>
parents: 7528
diff changeset
    95
endif (FFMPEG_LIBRARIES AND FFMPEG_INCLUDE_DIR)
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    96