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