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