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