FindFFMPEG.cmake 4.58 KB
Newer Older
1
2
3
4
5
6
7
8
9
#
# 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
10
# FFMPEG_avformat_LIBRARY and FFMPEG_avcodec_LIBRARY, where to find the FFMPEG library.
11
12
13
# This is usefull to do it this way so that we can always add more libraries
# if needed to FFMPEG_LIBRARIES if ffmpeg ever changes...

14
# if ffmpeg headers are all in one directory
15
FIND_PATH(FFMPEG_INCLUDE_DIR avformat.h
16
17
18
19
20
21
22
23
24
25
26
27
28
       PATHS
       $ENV{FFMPEG_DIR}/include
       $ENV{OSGDIR}/include
       $ENV{OSG_ROOT}/include
       ~/Library/Frameworks
       /Library/Frameworks
       /usr/local/include
       /usr/include
       /sw/include # Fink
       /opt/local/include # DarwinPorts
       /opt/csw/include # Blastwave
       /opt/include
       /usr/freeware/include
29
       PATH_SUFFIXES ffmpeg
30
       DOC "Location of FFMPEG Headers"
31
32
)

33
# if ffmpeg headers are seperated to each of libavformat, libavcodec etc..
34
IF( NOT FFMPEG_INCLUDE_DIR )
35
  FIND_PATH(FFMPEG_INCLUDE_DIR libavformat/avformat.h
36
37
38
39
40
41
42
43
44
45
46
47
48
       PATHS
       $ENV{FFMPEG_DIR}/include
       $ENV{OSGDIR}/include
       $ENV{OSG_ROOT}/include
       ~/Library/Frameworks
       /Library/Frameworks
       /usr/local/include
       /usr/include
       /sw/include # Fink
       /opt/local/include # DarwinPorts
       /opt/csw/include # Blastwave
       /opt/include
       /usr/freeware/include
49
       PATH_SUFFIXES ffmpeg
50
51
       DOC "Location of FFMPEG Headers"
)
52

53
54
ENDIF( NOT FFMPEG_INCLUDE_DIR )

55
56
# we want the -I include line to use the parent directory of ffmpeg as
# ffmpeg uses relative includes such as <ffmpeg/avformat.h> or <libavcodec/avformat.h>
57
get_filename_component(FFMPEG_INCLUDE_DIR ${FFMPEG_INCLUDE_DIR} ABSOLUTE)
58

59
60
61
62
FIND_LIBRARY(FFMPEG_avformat_LIBRARY avformat
  /usr/local/lib
  /usr/lib
)
63

64
FIND_LIBRARY(FFMPEG_avcodec_LIBRARY avcodec
65
66
67
68
  /usr/local/lib
  /usr/lib
)

69
FIND_LIBRARY(FFMPEG_avutil_LIBRARY avutil
70
71
72
73
  /usr/local/lib
  /usr/lib
)

74
FIND_LIBRARY(FFMPEG_vorbis_LIBRARY vorbis
75
76
77
78
  /usr/local/lib
  /usr/lib
)

79
FIND_LIBRARY(FFMPEG_dc1394_LIBRARY dc1394_control
80
81
82
83
  /usr/local/lib
  /usr/lib
)

84
FIND_LIBRARY(FFMPEG_vorbisenc_LIBRARY vorbisenc
85
86
87
88
  /usr/local/lib
  /usr/lib
)

89
FIND_LIBRARY(FFMPEG_theora_LIBRARY theora
90
91
92
93
94
95
96
97
98
99
100
101
102
103
  /usr/local/lib
  /usr/lib
)

FIND_LIBRARY(FFMPEG_dts_LIBRARY dts
  /usr/local/lib
  /usr/lib
)

FIND_LIBRARY(FFMPEG_gsm_LIBRARY gsm
  /usr/local/lib
  /usr/lib
)

104
105
106
107
108
FIND_LIBRARY(FFMPEG_swscale_LIBRARY swscale
  /usr/local/lib
  /usr/lib
)

109
110
111
112
113
FIND_LIBRARY(FFMPEG_z_LIBRARY z
  /usr/local/lib
  /usr/lib
)

114
SET(FFMPEG_LIBRARIES)
115
IF(FFMPEG_INCLUDE_DIR)
116
117
118
119
120
121
122
123
124
  IF(FFMPEG_avformat_LIBRARY)
    IF(FFMPEG_avcodec_LIBRARY)
      IF(FFMPEG_avutil_LIBRARY)
        SET( FFMPEG_FOUND "YES" )
        SET( FFMPEG_BASIC_LIBRARIES 
          ${FFMPEG_avcodec_LIBRARY} 
          ${FFMPEG_avformat_LIBRARY}
          ${FFMPEG_avutil_LIBRARY} 
          )
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161

        SET(FFMPEG_LIBRARIES ${FFMPEG_BASIC_LIBRARIES})

        IF(FFMPEG_vorbis_LIBRARY)
          LIST(APPEND FFMPEG_LIBRARIES ${FFMPEG_vorbis_LIBRARY})
        ENDIF(FFMPEG_vorbis_LIBRARY)

        IF(FFMPEG_dc1394_LIBRARY)
          LIST(APPEND FFMPEG_LIBRARIES ${FFMPEG_dc1394_LIBRARY})
        ENDIF(FFMPEG_dc1394_LIBRARY)

        IF(FFMPEG_vorbisenc_LIBRARY)
          LIST(APPEND FFMPEG_LIBRARIES ${FFMPEG_vorbisenc_LIBRARY})
        ENDIF(FFMPEG_vorbisenc_LIBRARY)

        IF(FFMPEG_theora_LIBRARY)
          LIST(APPEND FFMPEG_LIBRARIES ${FFMPEG_theora_LIBRARY})
        ENDIF(FFMPEG_theora_LIBRARY)

        IF(FFMPEG_dts_LIBRARY)
          LIST(APPEND FFMPEG_LIBRARIES ${FFMPEG_dts_LIBRARY})
        ENDIF(FFMPEG_dts_LIBRARY)

        IF(FFMPEG_gsm_LIBRARY)
          LIST(APPEND FFMPEG_LIBRARIES ${FFMPEG_gsm_LIBRARY})
        ENDIF(FFMPEG_gsm_LIBRARY)

        IF(FFMPEG_swscale_LIBRARY)
          LIST(APPEND FFMPEG_LIBRARIES ${FFMPEG_swscale_LIBRARY})
        ENDIF(FFMPEG_swscale_LIBRARY)

        IF(FFMPEG_z_LIBRARY)
          LIST(APPEND FFMPEG_LIBRARIES ${FFMPEG_z_LIBRARY})
        ENDIF(FFMPEG_z_LIBRARY)

        SET(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} CACHE INTERNAL "All presently found FFMPEG libraries.")

162
163
164
      ENDIF(FFMPEG_avutil_LIBRARY)
    ENDIF(FFMPEG_avcodec_LIBRARY)
  ENDIF(FFMPEG_avformat_LIBRARY)
165
166
ENDIF(FFMPEG_INCLUDE_DIR)

Mathieu Malaterre's avatar
Mathieu Malaterre committed
167
MARK_AS_ADVANCED(
Mathieu Malaterre's avatar
Mathieu Malaterre committed
168
  FFMPEG_INCLUDE_DIR
Mathieu Malaterre's avatar
Mathieu Malaterre committed
169
  FFMPEG_avformat_LIBRARY
170
171
  FFMPEG_avcodec_LIBRARY
  FFMPEG_avutil_LIBRARY
Mathieu Malaterre's avatar
Mathieu Malaterre committed
172
173
174
175
176
177
  FFMPEG_vorbis_LIBRARY
  FFMPEG_dc1394_LIBRARY
  FFMPEG_vorbisenc_LIBRARY
  FFMPEG_theora_LIBRARY
  FFMPEG_dts_LIBRARY
  FFMPEG_gsm_LIBRARY
178
  FFMPEG_swscale_LIBRARY
Mathieu Malaterre's avatar
Mathieu Malaterre committed
179
180
  FFMPEG_z_LIBRARY
  )