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