]> git.sesse.net Git - casparcg/blob - modules/ffmpeg/CMakeLists.txt
* Compiled ffmpeg for Linux as similary to Zeranoe Windows build as possible.
[casparcg] / modules / ffmpeg / CMakeLists.txt
1 cmake_minimum_required (VERSION 2.6)
2 project (ffmpeg)
3
4 set(SOURCES
5                 consumer/ffmpeg_consumer.cpp
6
7                 producer/audio/audio_decoder.cpp
8
9                 producer/filter/filter.cpp
10
11                 producer/input/input.cpp
12
13                 producer/muxer/frame_muxer.cpp
14
15                 producer/util/flv.cpp
16                 producer/util/util.cpp
17
18                 producer/video/video_decoder.cpp
19
20                 producer/ffmpeg_producer.cpp
21                 producer/tbb_avcodec.cpp
22
23                 ffmpeg.cpp
24                 ffmpeg_error.cpp
25                 StdAfx.cpp
26 )
27 set(HEADERS
28                 consumer/ffmpeg_consumer.h
29
30                 producer/audio/audio_decoder.h
31
32                 producer/filter/filter.h
33
34                 producer/input/input.h
35
36                 producer/muxer/display_mode.h
37                 producer/muxer/frame_muxer.h
38
39                 producer/util/flv.h
40                 producer/util/util.h
41
42                 producer/video/video_decoder.h
43
44                 producer/ffmpeg_producer.h
45                 producer/tbb_avcodec.h
46
47                 ffmpeg.h
48                 ffmpeg_error.h
49                 StdAfx.h
50 )
51
52 add_library(ffmpeg ${SOURCES} ${HEADERS})
53 add_precompiled_header(ffmpeg StdAfx.h FORCEINCLUDE)
54
55 include_directories(..)
56 include_directories(../..)
57 include_directories(${BOOST_INCLUDE_PATH})
58 include_directories(${TBB_INCLUDE_PATH})
59 include_directories(${FFMPEG_INCLUDE_PATH})
60 include_directories(${RXCPP_INCLUDE_PATH})
61 include_directories(${ASMLIB_INCLUDE_PATH})
62
63 set_target_properties(ffmpeg PROPERTIES FOLDER modules)
64 source_group(sources ./*)
65 source_group(sources\\consumer consumer/*)
66 source_group(sources\\producer\\audio producer/audio/*)
67 source_group(sources\\producer\\filter producer/filter/*)
68 source_group(sources\\producer\\input producer/input/*)
69 source_group(sources\\producer\\muxer producer/muxer/*)
70 source_group(sources\\producer\\util producer/util/*)
71 source_group(sources\\producer\\video producer/video/*)
72 source_group(sources\\producer producer/*)
73
74 if (MSVC)
75         target_link_libraries(ffmpeg
76                         common
77                         core
78
79                         avformat.lib
80                         avcodec.lib
81                         avutil.lib
82                         avfilter.lib
83                         swscale.lib
84                         swresample.lib
85         )
86 else()
87         target_link_libraries(ffmpeg
88                         common
89                         core
90
91                         -Wl,--start-group
92                         avformat.so
93                         avcodec.so
94                         avutil.so
95                         avfilter.so
96                         swscale.so
97                         swresample.so
98                         postproc.so
99
100                         ass
101                         bluray
102                         crypto
103                         expat
104                         fontconfig
105                         fribidi
106                         gmp
107                         gnutls
108                         gnutls-openssl
109                         gnutls-xssl
110                         gsm
111                         hogweed
112                         ilbc
113                         lzma
114                         modplug
115                         mp3lame
116                         nettle
117                         ogg
118                         opencore-amrnb
119                         opencore-amrwb
120                         opus
121                         rtmp
122                         ssl
123                         tasn1
124                         theora
125                         theoradec
126                         theoraenc
127                         vorbis
128                         vorbisenc
129                         vorbisfile
130                         vpx
131                         x264
132                         xavs
133                         xvidcore
134                         z
135                         -Wl,--end-group
136         )
137 endif()
138
139 casparcg_add_include_statement("modules/ffmpeg/ffmpeg.h")
140 casparcg_add_init_statement("ffmpeg::init" "ffmpeg")
141 casparcg_add_uninit_statement("ffmpeg::uninit")
142 casparcg_add_module_project("ffmpeg")
143
144 if(MSVC)
145         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/avcodec-55.dll")
146         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/avdevice-55.dll")
147         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/avfilter-4.dll")
148         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/avformat-55.dll")
149         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/avutil-52.dll")
150         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/postproc-52.dll")
151         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/swresample-0.dll")
152         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/swscale-2.dll")
153 else()
154         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libavcodec.so.55")
155         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libavdevice.so.55")
156         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libavfilter.so.4")
157         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libavformat.so.55")
158         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libavutil.so.52")
159         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libpostproc.so.52")
160         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libswresample.so.0")
161         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libswscale.so.2")
162
163         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libass.so.5")
164         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libbluray.so.1")
165         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libcrypto.so.1.0.0")
166         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libexpat.so.1")
167         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libfontconfig.so.1")
168         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libfreetype.so.6")
169         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libfribidi.so.0")
170         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libgme.so.0")
171         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libgmp.so.10")
172         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libgnutls-openssl.so.27")
173         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libgnutls-xssl.so.0")
174         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libgnutls.so.28")
175         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libgsm.so.1")
176         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libhogweed.so.2")
177         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libilbc.so.0")
178         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/liblzma.so.5")
179         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libmodplug.so.1")
180         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libmp3lame.so.0")
181         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libnettle.so.4")
182         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libogg.so.0")
183         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libopencore-amrnb.so.0")
184         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libopencore-amrwb.so.0")
185         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libopenjpeg.so.1")
186         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libopus.so.0")
187         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/liborc-0.4.so.0")
188         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/liborc-test-0.4.so.0")
189         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libpcre.so.1")
190         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libpcrecpp.so.0")
191         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libpcreposix.so.0")
192         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libpng.so.3")
193         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libpng12.so.0")
194         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/librtmp.so.0")
195         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libschroedinger-1.0.so.0")
196         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libsoxr-lsr.so.0")
197         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libsoxr.so.0")
198         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libspeex.so.1")
199         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libspeexdsp.so.1")
200         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libssl.so.1.0.0")
201         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libtasn1.so.6")
202         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libtheora.so.0")
203         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libtheoradec.so.1")
204         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libtheoraenc.so.1")
205         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libtwolame.so.0")
206         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libva.so.1")
207         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libvidstab.so.0.9")
208         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libvo-aacenc.so.0")
209         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libvo-amrwbenc.so.0")
210         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libvorbis.so.0")
211         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libvorbisenc.so.2")
212         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libvorbisfile.so.3")
213         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libvpx.so.1")
214         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libwavpack.so.1")
215         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libwebp.so.5")
216         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libx264.so.142")
217         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libx265.so.21")
218         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libxavs.so.1")
219         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libxml2.so.2")
220         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libxvidcore.so.4")
221         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libz.so.1")
222
223 endif()
224