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