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