]> git.sesse.net Git - kdenlive/blob - src/CMakeLists.txt
* Cleanup timecode display widget
[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 )
283
284 add_definitions(${KDE4_DEFINITIONS})
285
286 if(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
287   add_definitions(-DNO_JOGSHUTTLE)
288 else(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
289   set(kdenlive_SRCS jogshuttle.cpp jogaction.cpp jogshuttleconfig.cpp ${kdenlive_SRCS})
290 endif(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
291
292 if(APPLE OR OPENGL_FOUND)
293   add_definitions(-DUSE_OPEN_GL)
294   set(kdenlive_SRCS videoglwidget.cpp ${kdenlive_SRCS})
295 endif(APPLE OR OPENGL_FOUND)
296
297 if(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
298   set(kdenlive_SRCS
299     ${kdenlive_SRCS}
300     v4l/v4lcapture.cpp
301     v4l/src.c
302     v4l/src_v4l2.c
303     v4l/dec_bayer.c
304     v4l/dec_grey.c
305     v4l/dec_jpeg.c
306     v4l/dec_rgb.c
307     v4l/dec_s561.c
308     v4l/dec_yuv.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})
372 kde4_install_icons(${ICON_INSTALL_DIR})