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