]> git.sesse.net Git - casparcg/blob - modules/ffmpeg/CMakeLists.txt
* Replaced boost::timer with caspar::timer because of too low resolution on Linux...
[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                         bz2.a
101                         mp3lame.a
102                         opus.a
103                         png.a
104                         theora.a
105                         theoradec.a
106                         theoraenc.a
107                         vorbis.a
108                         vorbisenc.a
109                         vorbisfile.a
110                         ogg.a
111                         vpx.a
112                         x264.a
113                         xvidcore.a
114                         yasm.a
115                         z.a
116                         -Wl,--end-group
117         )
118 endif()
119
120 casparcg_add_include_statement("modules/ffmpeg/ffmpeg.h")
121 casparcg_add_init_statement("ffmpeg::init" "ffmpeg")
122 casparcg_add_uninit_statement("ffmpeg::uninit")
123 casparcg_add_module_project("ffmpeg")
124
125 if(MSVC)
126         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/avcodec-55.dll")
127         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/avdevice-55.dll")
128         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/avfilter-4.dll")
129         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/avformat-55.dll")
130         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/avutil-52.dll")
131         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/postproc-52.dll")
132         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/swresample-0.dll")
133         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/swscale-2.dll")
134 else()
135         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libavcodec.so.55")
136         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libavdevice.so.55")
137         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libavfilter.so.4")
138         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libavformat.so.55")
139         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libavutil.so.52")
140         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libpostproc.so.52")
141         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libswresample.so.0")
142         casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libswscale.so.2")
143 endif()
144