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