cmake_modules/FindFFMPEG.cmake
author sheepluva
Fri, 06 Dec 2013 23:53:35 +0100
changeset 9760 395ca7fe6362
parent 9419 fa8324ed4702
permissions -rw-r--r--
It seems that at the current state it is necessary to protect sending stats/ending game from multiple execution, as that can happen if you e.g. fail a mission more than once in the same tick (e.g. destroying two essential crates at the same time) Otherwise you can get a blank / stuck frontend (e.g. when using deagle to shoot the two last crates at the same time)! the best approach might be to never call the function that sends stats and ends game from any event handler directly, but instead have a flag 'isFailed' that is set to true when any of the possible fails happen and to check that flag every tick to send stats and end game if true
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8662
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
     1
# Find ffmpeg/libav 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
#
8662
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
     4
#  FFMPEG_FOUND             - system has libavcodec, libavformat, libavutil
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
     5
#  FFMPEG_INCLUDE_DIR       - the libav include directories
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
     6
#  FFMPEG_LIBRARIES         - the libav libraries
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
     7
#
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
     8
#  LIBAVCODEC_LIBRARY      - the libavcodec library
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
     9
#  LIBAVCODEC_INCLUDE_DIR  - the libavcodec include directory
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    10
#  LIBAVFORMAT_LIBRARY     - the libavformat library
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    11
#  LIBAVUTIL_LIBRARY       - the libavutil library
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    12
#
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    13
#  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
    14
#  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
    15
#  Modified for Hedgewars by Stepik777
8662
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    16
#  Copyright (c) 2013 Vittorio Giovara <vittorio.giovara@gmail.com>
7528
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
#  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
    19
#  BSD license.
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    20
#
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    21
8662
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    22
include(FindPackageHandleStandardArgs)
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    23
8285
a1500ffdc343 cmake set variable and typo
koda
parents: 8283
diff changeset
    24
8662
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    25
# use pkg-config to get the directories and then use these values
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    26
# in the FIND_PATH() and FIND_LIBRARY() calls
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    27
find_package(PkgConfig)
9419
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    28
if(PKG_CONFIG_FOUND)
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    29
    if(NOT LIBAVCODEC_INCLUDE_DIR OR NOT LIBAVCODEC_LIBRARY)
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    30
        pkg_check_modules(_FFMPEG_AVCODEC libavcodec)
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    31
    endif()
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    32
    if(NOT LIBAVFORMAT_LIBRARY)
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    33
        pkg_check_modules(_FFMPEG_AVFORMAT libavformat)
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    34
    endif()
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    35
    if(NOT LIBAVUTIL_LIBRARY)
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    36
        pkg_check_modules(_FFMPEG_AVUTIL libavutil)
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    37
    endif()
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    38
endif(PKG_CONFIG_FOUND)
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    39
8662
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    40
find_path(LIBAVCODEC_INCLUDE_DIR
7534
ccb9c2906160 fix FindFFMPEG
Stepan777 <stepik-777@mail.ru>
parents: 7528
diff changeset
    41
    NAMES libavcodec/avcodec.h
9419
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    42
    PATHS ${_FFMPEG_AVCODEC_INCLUDE_DIRS}    #pkg-config
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    43
          /usr/include /usr/local/include    #system level
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    44
          /opt/local/include /sw/include     #macports & fink
8662
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    45
    PATH_SUFFIXES libav ffmpeg
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    46
)
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    47
8662
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    48
#TODO: add other include paths
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    49
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    50
find_library(LIBAVCODEC_LIBRARY
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    51
    NAMES avcodec
9419
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    52
    PATHS ${_FFMPEG_AVCODEC_LIBRARY_DIRS}   #pkg-config
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    53
          /usr/lib /usr/local/lib           #system level
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    54
          /opt/local/lib /sw/lib            #macports & fink
8662
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    55
)
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    56
8662
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    57
find_library(LIBAVFORMAT_LIBRARY
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    58
    NAMES avformat
9419
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    59
    PATHS ${_FFMPEG_AVFORMAT_LIBRARY_DIRS}  #pkg-config
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    60
          /usr/lib /usr/local/lib           #system level
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    61
          /opt/local/lib /sw/lib            #macports & fink
8662
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    62
)
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    63
8662
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    64
find_library(LIBAVUTIL_LIBRARY
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    65
    NAMES avutil
9419
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    66
    PATHS ${_FFMPEG_AVUTIL_LIBRARY_DIRS}    #pkg-config
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    67
          /usr/lib /usr/local/lib           #system level
fa8324ed4702 avoid duplicate pkg-config calls and make sure to use the pkg-config paths when found
koda
parents: 8662
diff changeset
    68
          /opt/local/lib /sw/lib            #macports & fink
8662
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    69
)
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    70
8662
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    71
find_package_handle_standard_args(FFMPEG DEFAULT_MSG LIBAVCODEC_LIBRARY LIBAVCODEC_INCLUDE_DIR
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    72
                                                     LIBAVFORMAT_LIBRARY
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    73
                                                     LIBAVUTIL_LIBRARY
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    74
                                                     )
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    75
set(FFMPEG_INCLUDE_DIR ${LIBAVCODEC_INCLUDE_DIR}
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    76
                       #TODO: add other include paths
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    77
                       )
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    78
set(FFMPEG_LIBRARIES ${LIBAVCODEC_LIBRARY}
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    79
                     ${LIBAVFORMAT_LIBRARY}
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    80
                     ${LIBAVUTIL_LIBRARY}
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    81
                     )
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents:
diff changeset
    82
8662
bfcc09f2accc rewritten findffmpeg.cmake
koda
parents: 8285
diff changeset
    83
mark_as_advanced(FFMPEG_INCLUDE_DIR FFMPEG_LIBRARIES LIBAVCODEC_LIBRARY LIBAVCODEC_INCLUDE_DIR LIBAVFORMAT_LIBRARY LIBAVUTIL_LIBRARY)
7528
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