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