]> git.sesse.net Git - kdenlive/blob - src/CMakeLists.txt
Preparing Spectrogram widget
[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   widgets/spectrogram_ui.ui
121 )
122
123 set(kdenlive_SRCS
124   ${kdenlive_SRCS}
125   addclipcommand.cpp
126   main.cpp
127   mainwindow.cpp
128   customruler.cpp
129   smallruler.cpp
130   projectlist.cpp
131   projectitem.cpp
132   monitor.cpp
133   gentime.cpp
134   renderer.cpp
135   kdenlivedoc.cpp
136   projectlistview.cpp
137   trackview.cpp
138   docclipbase.cpp
139   timecode.cpp
140   monitormanager.cpp
141   headertrack.cpp
142   customtrackview.cpp
143   clipitem.cpp
144   moveclipcommand.cpp
145   resizeclipcommand.cpp
146   razorclipcommand.cpp
147   addtimelineclipcommand.cpp
148   addmarkercommand.cpp
149   kthumb.cpp
150   clipmanager.cpp
151   effectslist.cpp
152   initeffects.cpp
153   effectslistview.cpp
154   addeffectcommand.cpp
155   editeffectcommand.cpp
156   moveeffectcommand.cpp
157   effectstackview.cpp
158   effectstackedit.cpp
159   parameterplotter.cpp
160   profilesdialog.cpp
161   projectsettings.cpp
162   kdenlivesettingsdialog.cpp
163   complexparameter.cpp
164   titlewidget.cpp
165   unicodedialog.cpp
166   graphicsscenerectmove.cpp
167   effectslistwidget.cpp
168   titledocument.cpp
169   transition.cpp
170   renderwidget.cpp
171   abstractclipitem.cpp
172   transitionsettings.cpp
173   recmonitor.cpp
174   addtransitioncommand.cpp
175   edittransitioncommand.cpp
176   addfoldercommand.cpp
177   editfoldercommand.cpp
178   clipproperties.cpp
179   movetransitioncommand.cpp
180   slideshowclip.cpp
181   markerdialog.cpp
182   guide.cpp
183   editguidecommand.cpp
184   statusbarmessagelabel.cpp
185   editkeyframecommand.cpp
186   clipdurationdialog.cpp
187   managecapturesdialog.cpp
188   changespeedcommand.cpp
189   geometryval.cpp
190   wizard.cpp
191   customtrackscene.cpp
192   abstractgroupitem.cpp
193   keyframehelper.cpp
194   editclipcommand.cpp
195   insertspacecommand.cpp
196   spacerdialog.cpp
197   addtrackcommand.cpp
198   movegroupcommand.cpp
199   dvdwizardvob.cpp
200   dvdwizardmenu.cpp
201   dvdwizard.cpp
202   locktrackcommand.cpp
203   groupclipscommand.cpp
204   splitaudiocommand.cpp
205   changecliptypecommand.cpp
206   documentchecker.cpp
207   dvdwizardchapters.cpp
208   documentvalidator.cpp
209   cliptranscode.cpp
210   keyframeedit.cpp
211   positionedit.cpp
212   trackdialog.cpp
213   subprojectitem.cpp
214   folderprojectitem.cpp
215   addclipcutcommand.cpp
216   editclipcutcommand.cpp
217   KoSliderCombo.cpp
218   kis_cubic_curve.cpp
219   kis_curve_widget.cpp
220   timecodedisplay.cpp
221   tracksconfigdialog.cpp
222   configtrackscommand.cpp
223   abstractscopewidget.cpp
224   audioscopes/abstractaudioscopewidget.cpp
225   audioscopes/audiospectrum.cpp
226   audioscopes/spectrogram.cpp
227   audioscopes/ffttools.cpp
228   rebuildgroupcommand.cpp
229   colorscopes/abstractgfxscopewidget.cpp
230   colorscopes/histogram.cpp
231   colorscopes/rgbparade.cpp
232   colorscopes/vectorscope.cpp
233   colorscopes/waveform.cpp
234   colorplaneexport.cpp
235   colortools.cpp
236   colorcorrection/histogramgenerator.cpp
237   colorcorrection/rgbparadegenerator.cpp
238   colorcorrection/vectorscopegenerator.cpp
239   colorcorrection/waveformgenerator.cpp
240   razorgroupcommand.cpp
241   colorpickerwidget.cpp
242   choosecolorwidget.cpp
243   monitorscene.cpp
244   geometrywidget.cpp
245   doubleparameterwidget.cpp
246   audiosignal.cpp
247   blackmagic/include/DeckLinkAPIDispatch.cpp
248   stopmotion/stopmotion.cpp
249   stopmotion/capturehandler.cpp
250   blackmagic/capture.cpp
251   blackmagic/devices.cpp
252   onmonitoritems/abstractonmonitoritem.cpp
253   onmonitoritems/onmonitorrectitem.cpp
254   onmonitoritems/onmonitorcornersitem.cpp
255   monitorscenecontrolwidget.cpp
256   cornerswidget.cpp
257   kiss_fft/_kiss_fft_guts.h
258   kiss_fft/kiss_fft.c
259   kiss_fft/tools/kiss_fftr.c
260 )
261
262 add_subdirectory(${CMAKE_SOURCE_DIR}/src/colorcorrection)
263 add_subdirectory(${CMAKE_SOURCE_DIR}/src/onmonitoritems)
264
265 add_definitions(${KDE4_DEFINITIONS})
266
267 if(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
268   add_definitions(-DNO_JOGSHUTTLE)
269 else(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
270   set(kdenlive_SRCS jogshuttle.cpp ${kdenlive_SRCS})
271 endif(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
272
273 if(APPLE OR OPENGL_FOUND)
274   add_definitions(-DUSE_OPEN_GL)
275   set(kdenlive_SRCS videoglwidget.cpp ${kdenlive_SRCS})
276 endif(APPLE OR OPENGL_FOUND)
277
278 if(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
279   set(kdenlive_SRCS
280     ${kdenlive_SRCS}
281     v4l/v4lcapture.cpp
282     v4l/src.c
283     v4l/src_v4l2.c
284     v4l/dec_bayer.c
285     v4l/dec_grey.c
286     v4l/dec_jpeg.c
287     v4l/dec_rgb.c
288     v4l/dec_s561.c
289     v4l/dec_yuv.c
290   )
291 endif(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
292
293 # Add libdl
294 find_library(DL_LIB NAMES ${CMAKE_DL_LIBS})
295 message(STATUS "using dl library: ${DL_LIB}")
296
297 kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc)
298 qt4_add_dbus_adaptor(kdenlive_SRCS org.kdenlive.MainWindow.xml mainwindow.h MainWindow)
299 kde4_add_executable(kdenlive ${kdenlive_SRCS} ${kdenlive_UI})
300
301 if(${KDE_VERSION} VERSION_LESS 4.3.80)
302   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
303 else(${KDE_VERSION} VERSION_LESS 4.3.80)
304   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
305 endif(${KDE_VERSION} VERSION_LESS 4.3.80)
306
307 target_link_libraries(kdenlive
308   ${KDE4_KDEUI_LIBS}
309   ${KDE4_KIO_LIBS}
310   ${KNEWSTUFF_LIBS}
311   ${LIBMLTPLUS_LIBRARY}
312   ${LIBMLT_LIBRARY}
313   ${optional_libs}
314   ${KDE4_KNOTIFYCONFIG_LIBRARY}
315   ${KDE4_KROSSUI_LIBS}
316   ${CMAKE_DL_LIBS}
317 )
318
319 if(Q_WS_X11)
320   target_link_libraries(kdenlive ${X11_LIBRARIES})
321 endif(Q_WS_X11)
322
323 if(APPLE)
324   find_package(SDL REQUIRED)
325   target_link_libraries(kdenlive ${SDL_LIBRARY})
326   target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY})
327   target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
328 else(APPLE)
329   add_definitions(-DHAVE_V4L2)
330   if(OPENGL_FOUND)
331     target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY})
332     target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
333   endif(OPENGL_FOUND)
334 endif(APPLE)
335
336 install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR})
337 install(FILES kdenliveui.rc kdenlive.notifyrc DESTINATION ${DATA_INSTALL_DIR}/kdenlive)
338 install(FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR})
339 install(FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
340 kde4_install_icons(${ICON_INSTALL_DIR})
341 install(FILES kdenlive_titles.knsrc kdenlive_wipes.knsrc kdenlive_renderprofiles.knsrc kdenlive_projectprofiles.knsrc kdenlivetranscodingrc DESTINATION ${CONFIG_INSTALL_DIR})
342 kde4_install_icons(${ICON_INSTALL_DIR})