]> git.sesse.net Git - kdenlive/blob - src/CMakeLists.txt
on-monitor editing: show controls next to the edit monitor
[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/audiospectrum_ui.ui
123   widgets/spectrogram_ui.ui
124   widgets/smconfig_ui.ui
125   widgets/bezierspline_ui.ui
126   widgets/monitoreditwidget_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/beziersplineeditor.cpp
267   beziercurve/beziersplinewidget.cpp
268   beziercurve/bpoint.cpp
269   beziercurve/cubicbezierspline.cpp
270   dragvalue.cpp
271   monitoreditwidget.cpp
272 )
273
274 add_definitions(${KDE4_DEFINITIONS})
275
276 if(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
277   add_definitions(-DNO_JOGSHUTTLE)
278 else(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
279   set(kdenlive_SRCS jogshuttle.cpp jogaction.cpp jogshuttleconfig.cpp ${kdenlive_SRCS})
280 endif(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
281
282 if(APPLE OR OPENGL_FOUND)
283   add_definitions(-DUSE_OPEN_GL)
284   set(kdenlive_SRCS videoglwidget.cpp ${kdenlive_SRCS})
285 endif(APPLE OR OPENGL_FOUND)
286
287 if(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
288   set(kdenlive_SRCS
289     ${kdenlive_SRCS}
290     v4l/v4lcapture.cpp
291     v4l/src.c
292     v4l/src_v4l2.c
293     v4l/dec_bayer.c
294     v4l/dec_grey.c
295     v4l/dec_jpeg.c
296     v4l/dec_rgb.c
297     v4l/dec_s561.c
298     v4l/dec_yuv.c
299   )
300 endif(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
301
302 # Add libdl
303 find_library(DL_LIB NAMES ${CMAKE_DL_LIBS})
304 message(STATUS "using dl library: ${DL_LIB}")
305
306 kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc)
307 qt4_add_dbus_adaptor(kdenlive_SRCS org.kdenlive.MainWindow.xml mainwindow.h MainWindow)
308 kde4_add_executable(kdenlive ${kdenlive_SRCS} ${kdenlive_UI})
309
310 if(${KDE_VERSION} VERSION_LESS 4.3.80)
311   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
312 else(${KDE_VERSION} VERSION_LESS 4.3.80)
313   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
314 endif(${KDE_VERSION} VERSION_LESS 4.3.80)
315
316 target_link_libraries(kdenlive
317   ${KDE4_KDEUI_LIBS}
318   ${KDE4_KIO_LIBS}
319   ${KNEWSTUFF_LIBS}
320   ${LIBMLTPLUS_LIBRARY}
321   ${LIBMLT_LIBRARY}
322   ${optional_libs}
323   ${KDE4_KNOTIFYCONFIG_LIBRARY}
324   ${KDE4_KROSSUI_LIBS}
325   ${CMAKE_DL_LIBS}
326   ${CMAKE_THREAD_LIBS_INIT}
327 )
328
329 if(Q_WS_X11)
330   target_link_libraries(kdenlive ${X11_LIBRARIES})
331 endif(Q_WS_X11)
332
333 if(APPLE)
334   find_package(SDL REQUIRED)
335   target_link_libraries(kdenlive ${SDL_LIBRARY})
336   target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY})
337   target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
338 else(APPLE)
339   add_definitions(-DHAVE_V4L2)
340   if(OPENGL_FOUND)
341     target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY})
342     target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
343   endif(OPENGL_FOUND)
344 endif(APPLE)
345
346 install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR})
347 install(FILES kdenliveui.rc kdenlive.notifyrc DESTINATION ${DATA_INSTALL_DIR}/kdenlive)
348 install(FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR})
349 install(FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
350 kde4_install_icons(${ICON_INSTALL_DIR})
351 install(FILES kdenlive_titles.knsrc kdenlive_wipes.knsrc kdenlive_renderprofiles.knsrc kdenlive_projectprofiles.knsrc kdenlivetranscodingrc DESTINATION ${CONFIG_INSTALL_DIR})
352 kde4_install_icons(${ICON_INSTALL_DIR})