]> git.sesse.net Git - kdenlive/blob - src/CMakeLists.txt
Audio Spectrum: Different Window functions added (Rectangle, Triangle, and Hamming)
[kdenlive] / src / CMakeLists.txt
1 add_subdirectory(widgets)
2 add_subdirectory(mimetypes)
3 add_subdirectory(kiss_fft)
4
5 macro_optional_find_package(Nepomuk)
6 include(FindQImageBlitz)
7
8 include_directories(
9   ${KDE4_INCLUDE_DIR}
10   ${KDE4_INCLUDE_DIR}/KDE
11   ${QT_INCLUDES}
12   ${LIBMLT_INCLUDE_DIR}
13   ${LIBMLTPLUS_INCLUDE_DIR}
14   ${QDBUS_INCLUDE_DIRS}
15   ${CMAKE_SOURCE_DIR}
16   ${CMAKE_BINARY_DIR}
17   ${CMAKE_SOURCE_DIR}/src/widgets
18   ${CMAKE_SOURCE_DIR}/src/colorcorrection
19   ${CMAKE_SOURCE_DIR}/src/onmonitoritems
20   ${CMAKE_SOURCE_DIR}/src/kiss_fft
21   ${CMAKE_SOURCE_DIR}/src/audioscopes
22 )
23
24
25 if(Nepomuk_FOUND)
26   include_directories(NEPOMUK_INCLUDES)
27   set(optional_libs ${NEPOMUK_LIBRARIES})
28   add_definitions(-DNEPOMUK)
29 endif(Nepomuk_FOUND)
30
31 if(QIMAGEBLITZ_FOUND)
32   include_directories(QIMAGEBLITZ_INCLUDES)
33   set(optional_libs ${optional_libs} ${QIMAGEBLITZ_LIBRARIES})
34   add_definitions(-DQIMAGEBLITZ)
35   message(STATUS "Found QImageBlitz: ${QIMAGEBLITZ_LIBRARIES}")
36 else(QIMAGEBLITZ_FOUND)
37   message(STATUS "Install QImageBlitz devel package for improved stopmotion features")
38 endif(QIMAGEBLITZ_FOUND)
39
40 if(Q_WS_X11)
41   include_directories(${X11_Xlib_INCLUDE_PATH})
42 endif(Q_WS_X11)
43
44 if(APPLE)
45   find_package(OpenGL)
46   set(QT_USE_QTOPENGL TRUE)
47 else(APPLE)
48   macro_optional_find_package(OpenGL)
49 endif(APPLE)
50
51
52 link_libraries(
53   ${LIBMLT_LIBRARY}
54   ${LIBMLTPLUS_LIBRARY}
55   ${optional_libs}
56 )
57
58 kde4_add_ui_files(kdenlive_UI
59   widgets/timeline_ui.ui
60   widgets/recmonitor_ui.ui
61   widgets/colorclip_ui.ui
62   widgets/slideshowclip_ui.ui
63   widgets/configmisc_ui.ui
64   widgets/configenv_ui.ui
65   widgets/configtimeline_ui.ui
66   widgets/configsdl_ui.ui
67   widgets/configcapture_ui.ui
68   widgets/configtranscode_ui.ui
69   widgets/configproject_ui.ui
70   widgets/effectlist_ui.ui
71   widgets/effectstack_ui.ui
72   widgets/profiledialog_ui.ui
73   widgets/projectsettings_ui.ui
74   widgets/keyframewidget_ui.ui
75   widgets/listval_ui.ui
76   widgets/wipeval_ui.ui
77   widgets/boolval_ui.ui
78   widgets/titlewidget_ui.ui
79   widgets/unicodedialog_ui.ui
80   widgets/timelinebuttons_ui.ui
81   widgets/renderwidget_ui.ui
82   widgets/saveprofile_ui.ui
83   widgets/transitionsettings_ui.ui
84   widgets/configjogshuttle_ui.ui
85   widgets/trackheader_ui.ui
86   widgets/clipproperties_ui.ui
87   widgets/markerdialog_ui.ui
88   widgets/keyframedialog_ui.ui
89   widgets/clipdurationdialog_ui.ui
90   widgets/managecaptures_ui.ui
91   widgets/geometryval_ui.ui
92   widgets/wizardstandard_ui.ui
93   widgets/wizardextra_ui.ui
94   widgets/wizardcapture_ui.ui
95   widgets/wizardcheck_ui.ui
96   widgets/wizardmltcheck_ui.ui
97   widgets/spacerdialog_ui.ui
98   widgets/addtrack_ui.ui
99   widgets/dvdwizardvob_ui.ui
100   widgets/dvdwizardmenu_ui.ui
101   widgets/dvdwizardstatus_ui.ui
102   widgets/dvdwizardchapters_ui.ui
103   widgets/missingclips_ui.ui
104   widgets/cliptranscode_ui.ui
105   widgets/templateclip_ui.ui
106   widgets/keyframeeditor_ui.ui
107   widgets/timecodedisplay_ui.ui
108   widgets/tracksconfigdialog_ui.ui
109   widgets/urlval_ui.ui
110   widgets/vectorscope_ui.ui
111   widgets/colorplaneexport_ui.ui
112   widgets/waveform_ui.ui
113   widgets/rgbparade_ui.ui
114   widgets/histogram_ui.ui
115   widgets/geometrywidget_ui.ui
116   widgets/stopmotion_ui.ui
117   widgets/monitorscenecontrolwidget_ui.ui
118   widgets/cornerswidget_ui.ui
119   widgets/audiospectrum_ui.ui
120 )
121
122 set(kdenlive_SRCS
123   ${kdenlive_SRCS}
124   addclipcommand.cpp
125   main.cpp
126   mainwindow.cpp
127   customruler.cpp
128   smallruler.cpp
129   projectlist.cpp
130   projectitem.cpp
131   monitor.cpp
132   gentime.cpp
133   renderer.cpp
134   kdenlivedoc.cpp
135   projectlistview.cpp
136   trackview.cpp
137   docclipbase.cpp
138   timecode.cpp
139   monitormanager.cpp
140   headertrack.cpp
141   customtrackview.cpp
142   clipitem.cpp
143   moveclipcommand.cpp
144   resizeclipcommand.cpp
145   razorclipcommand.cpp
146   addtimelineclipcommand.cpp
147   addmarkercommand.cpp
148   kthumb.cpp
149   clipmanager.cpp
150   effectslist.cpp
151   initeffects.cpp
152   effectslistview.cpp
153   addeffectcommand.cpp
154   editeffectcommand.cpp
155   moveeffectcommand.cpp
156   effectstackview.cpp
157   effectstackedit.cpp
158   parameterplotter.cpp
159   profilesdialog.cpp
160   projectsettings.cpp
161   kdenlivesettingsdialog.cpp
162   complexparameter.cpp
163   titlewidget.cpp
164   unicodedialog.cpp
165   graphicsscenerectmove.cpp
166   effectslistwidget.cpp
167   titledocument.cpp
168   transition.cpp
169   renderwidget.cpp
170   abstractclipitem.cpp
171   transitionsettings.cpp
172   recmonitor.cpp
173   addtransitioncommand.cpp
174   edittransitioncommand.cpp
175   addfoldercommand.cpp
176   editfoldercommand.cpp
177   clipproperties.cpp
178   movetransitioncommand.cpp
179   slideshowclip.cpp
180   markerdialog.cpp
181   guide.cpp
182   editguidecommand.cpp
183   statusbarmessagelabel.cpp
184   editkeyframecommand.cpp
185   clipdurationdialog.cpp
186   managecapturesdialog.cpp
187   changespeedcommand.cpp
188   geometryval.cpp
189   wizard.cpp
190   customtrackscene.cpp
191   abstractgroupitem.cpp
192   keyframehelper.cpp
193   editclipcommand.cpp
194   insertspacecommand.cpp
195   spacerdialog.cpp
196   addtrackcommand.cpp
197   movegroupcommand.cpp
198   dvdwizardvob.cpp
199   dvdwizardmenu.cpp
200   dvdwizard.cpp
201   locktrackcommand.cpp
202   groupclipscommand.cpp
203   splitaudiocommand.cpp
204   changecliptypecommand.cpp
205   documentchecker.cpp
206   dvdwizardchapters.cpp
207   documentvalidator.cpp
208   cliptranscode.cpp
209   keyframeedit.cpp
210   positionedit.cpp
211   trackdialog.cpp
212   subprojectitem.cpp
213   folderprojectitem.cpp
214   addclipcutcommand.cpp
215   editclipcutcommand.cpp
216   KoSliderCombo.cpp
217   kis_cubic_curve.cpp
218   kis_curve_widget.cpp
219   timecodedisplay.cpp
220   tracksconfigdialog.cpp
221   configtrackscommand.cpp
222   abstractscopewidget.cpp
223   audioscopes/abstractaudioscopewidget.cpp
224   audioscopes/audiospectrum.cpp
225   audioscopes/ffttools.cpp
226   rebuildgroupcommand.cpp
227   colorscopes/abstractgfxscopewidget.cpp
228   colorscopes/histogram.cpp
229   colorscopes/rgbparade.cpp
230   colorscopes/vectorscope.cpp
231   colorscopes/waveform.cpp
232   colorplaneexport.cpp
233   colortools.cpp
234   colorcorrection/histogramgenerator.cpp
235   colorcorrection/rgbparadegenerator.cpp
236   colorcorrection/vectorscopegenerator.cpp
237   colorcorrection/waveformgenerator.cpp
238   razorgroupcommand.cpp
239   colorpickerwidget.cpp
240   choosecolorwidget.cpp
241   monitorscene.cpp
242   geometrywidget.cpp
243   doubleparameterwidget.cpp
244   audiosignal.cpp
245   blackmagic/include/DeckLinkAPIDispatch.cpp
246   stopmotion/stopmotion.cpp
247   stopmotion/capturehandler.cpp
248   blackmagic/capture.cpp
249   blackmagic/devices.cpp
250   onmonitoritems/abstractonmonitoritem.cpp
251   onmonitoritems/onmonitorrectitem.cpp
252   onmonitoritems/onmonitorcornersitem.cpp
253   monitorscenecontrolwidget.cpp
254   cornerswidget.cpp
255   kiss_fft/_kiss_fft_guts.h
256   kiss_fft/kiss_fft.c
257   kiss_fft/tools/kiss_fftr.c
258 )
259
260 add_subdirectory(${CMAKE_SOURCE_DIR}/src/colorcorrection)
261 add_subdirectory(${CMAKE_SOURCE_DIR}/src/onmonitoritems)
262
263 add_definitions(${KDE4_DEFINITIONS})
264
265 if(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
266   add_definitions(-DNO_JOGSHUTTLE)
267 else(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
268   set(kdenlive_SRCS jogshuttle.cpp ${kdenlive_SRCS})
269 endif(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
270
271 if(APPLE OR OPENGL_FOUND)
272   add_definitions(-DUSE_OPEN_GL)
273   set(kdenlive_SRCS videoglwidget.cpp ${kdenlive_SRCS})
274 endif(APPLE OR OPENGL_FOUND)
275
276 if(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
277   set(kdenlive_SRCS
278     ${kdenlive_SRCS}
279     v4l/v4lcapture.cpp
280     v4l/src.c
281     v4l/src_v4l2.c
282     v4l/dec_bayer.c
283     v4l/dec_grey.c
284     v4l/dec_jpeg.c
285     v4l/dec_rgb.c
286     v4l/dec_s561.c
287     v4l/dec_yuv.c
288   )
289 endif(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
290
291 # Add libdl
292 find_library(DL_LIB NAMES ${CMAKE_DL_LIBS})
293 message(STATUS "using dl library: ${DL_LIB}")
294
295 kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc)
296 qt4_add_dbus_adaptor(kdenlive_SRCS org.kdenlive.MainWindow.xml mainwindow.h MainWindow)
297 kde4_add_executable(kdenlive ${kdenlive_SRCS} ${kdenlive_UI})
298
299 if(${KDE_VERSION} VERSION_LESS 4.3.80)
300   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
301 else(${KDE_VERSION} VERSION_LESS 4.3.80)
302   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
303 endif(${KDE_VERSION} VERSION_LESS 4.3.80)
304
305 target_link_libraries(kdenlive
306   ${KDE4_KDEUI_LIBS}
307   ${KDE4_KIO_LIBS}
308   ${KNEWSTUFF_LIBS}
309   ${LIBMLTPLUS_LIBRARY}
310   ${LIBMLT_LIBRARY}
311   ${optional_libs}
312   ${KDE4_KNOTIFYCONFIG_LIBRARY}
313   ${KDE4_KROSSUI_LIBS}
314   ${CMAKE_DL_LIBS}
315 )
316
317 if(Q_WS_X11)
318   target_link_libraries(kdenlive ${X11_LIBRARIES})
319 endif(Q_WS_X11)
320
321 if(APPLE)
322   find_package(SDL REQUIRED)
323   target_link_libraries(kdenlive ${SDL_LIBRARY})
324   target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY})
325   target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
326 else(APPLE)
327   add_definitions(-DHAVE_V4L2)
328   if(OPENGL_FOUND)
329     target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY})
330     target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
331   endif(OPENGL_FOUND)
332 endif(APPLE)
333
334 install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR})
335 install(FILES kdenliveui.rc kdenlive.notifyrc DESTINATION ${DATA_INSTALL_DIR}/kdenlive)
336 install(FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR})
337 install(FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
338 kde4_install_icons(${ICON_INSTALL_DIR})
339 install(FILES kdenlive_titles.knsrc kdenlive_wipes.knsrc kdenlive_renderprofiles.knsrc kdenlive_projectprofiles.knsrc kdenlivetranscodingrc DESTINATION ${CONFIG_INSTALL_DIR})
340 kde4_install_icons(${ICON_INSTALL_DIR})