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