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