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