]> git.sesse.net Git - kdenlive/blob - src/CMakeLists.txt
rotoscoping:
[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/timecodedisplay_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 )
139
140 set(kdenlive_SRCS
141   ${kdenlive_SRCS}
142   addclipcommand.cpp
143   main.cpp
144   mainwindow.cpp
145   customruler.cpp
146   smallruler.cpp
147   projectlist.cpp
148   projectitem.cpp
149   monitor.cpp
150   gentime.cpp
151   renderer.cpp
152   kdenlivedoc.cpp
153   projectlistview.cpp
154   trackview.cpp
155   docclipbase.cpp
156   timecode.cpp
157   monitormanager.cpp
158   headertrack.cpp
159   customtrackview.cpp
160   clipitem.cpp
161   moveclipcommand.cpp
162   resizeclipcommand.cpp
163   razorclipcommand.cpp
164   addtimelineclipcommand.cpp
165   addmarkercommand.cpp
166   kthumb.cpp
167   clipmanager.cpp
168   effectslist.cpp
169   initeffects.cpp
170   effectslistview.cpp
171   addeffectcommand.cpp
172   editeffectcommand.cpp
173   moveeffectcommand.cpp
174   effectstackview.cpp
175   effectstackedit.cpp
176   parameterplotter.cpp
177   profilesdialog.cpp
178   projectsettings.cpp
179   kdenlivesettingsdialog.cpp
180   complexparameter.cpp
181   titlewidget.cpp
182   unicodedialog.cpp
183   graphicsscenerectmove.cpp
184   effectslistwidget.cpp
185   titledocument.cpp
186   transition.cpp
187   renderwidget.cpp
188   abstractclipitem.cpp
189   transitionsettings.cpp
190   recmonitor.cpp
191   addtransitioncommand.cpp
192   edittransitioncommand.cpp
193   addfoldercommand.cpp
194   editfoldercommand.cpp
195   clipproperties.cpp
196   movetransitioncommand.cpp
197   slideshowclip.cpp
198   markerdialog.cpp
199   guide.cpp
200   editguidecommand.cpp
201   statusbarmessagelabel.cpp
202   editkeyframecommand.cpp
203   clipdurationdialog.cpp
204   managecapturesdialog.cpp
205   changespeedcommand.cpp
206   geometryval.cpp
207   wizard.cpp
208   customtrackscene.cpp
209   abstractgroupitem.cpp
210   keyframehelper.cpp
211   editclipcommand.cpp
212   insertspacecommand.cpp
213   spacerdialog.cpp
214   addtrackcommand.cpp
215   movegroupcommand.cpp
216   dvdwizardvob.cpp
217   dvdwizardmenu.cpp
218   dvdwizard.cpp
219   locktrackcommand.cpp
220   groupclipscommand.cpp
221   splitaudiocommand.cpp
222   changecliptypecommand.cpp
223   documentchecker.cpp
224   dvdwizardchapters.cpp
225   documentvalidator.cpp
226   cliptranscode.cpp
227   keyframeedit.cpp
228   positionedit.cpp
229   trackdialog.cpp
230   subprojectitem.cpp
231   folderprojectitem.cpp
232   addclipcutcommand.cpp
233   editclipcutcommand.cpp
234   KoSliderCombo.cpp
235   kis_cubic_curve.cpp
236   kis_curve_widget.cpp
237   timecodedisplay.cpp
238   tracksconfigdialog.cpp
239   configtrackscommand.cpp
240   abstractscopewidget.cpp
241   audioscopes/abstractaudioscopewidget.cpp
242   audioscopes/audiospectrum.cpp
243   audioscopes/spectrogram.cpp
244   audioscopes/ffttools.cpp
245   rebuildgroupcommand.cpp
246   colorscopes/abstractgfxscopewidget.cpp
247   colorscopes/histogram.cpp
248   colorscopes/rgbparade.cpp
249   colorscopes/vectorscope.cpp
250   colorscopes/waveform.cpp
251   colorplaneexport.cpp
252   colortools.cpp
253   colorcorrection/histogramgenerator.cpp
254   colorcorrection/rgbparadegenerator.cpp
255   colorcorrection/vectorscopegenerator.cpp
256   colorcorrection/waveformgenerator.cpp
257   razorgroupcommand.cpp
258   colorpickerwidget.cpp
259   choosecolorwidget.cpp
260   monitorscene.cpp
261   geometrywidget.cpp
262   doubleparameterwidget.cpp
263   audiosignal.cpp
264   blackmagic/include/DeckLinkAPIDispatch.cpp
265   stopmotion/stopmotion.cpp
266   stopmotion/capturehandler.cpp
267   blackmagic/capture.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 )
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})