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