]> git.sesse.net Git - kdenlive/blob - src/CMakeLists.txt
- Remove double "kde4_install_icons" call.
[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   stopmotion/capturehandler.cpp
268   blackmagic/capture.cpp
269   blackmagic/devices.cpp
270   onmonitoritems/onmonitorrectitem.cpp
271   onmonitoritems/onmonitorcornersitem.cpp
272   cornerswidget.cpp
273   kiss_fft/_kiss_fft_guts.h
274   kiss_fft/kiss_fft.c
275   kiss_fft/tools/kiss_fftr.c
276   beziercurve/beziersplineeditor.cpp
277   beziercurve/beziersplinewidget.cpp
278   beziercurve/bpoint.cpp
279   beziercurve/cubicbezierspline.cpp
280   dragvalue.cpp
281   monitoreditwidget.cpp
282   simplekeyframes/simpletimelinewidget.cpp
283   simplekeyframes/simplekeyframewidget.cpp
284   noteswidget.cpp
285   archivewidget.cpp
286   mltdevicecapture.cpp
287   abstractmonitor.cpp
288   encodingprofilesdialog.cpp
289 )
290
291 add_definitions(${KDE4_DEFINITIONS})
292
293 if(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
294   add_definitions(-DNO_JOGSHUTTLE)
295 else(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
296   set(kdenlive_SRCS jogshuttle.cpp jogaction.cpp jogshuttleconfig.cpp ${kdenlive_SRCS})
297 endif(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
298
299 if(APPLE OR OPENGL_FOUND)
300   add_definitions(-DUSE_OPEN_GL)
301   set(kdenlive_SRCS videoglwidget.cpp ${kdenlive_SRCS})
302 endif(APPLE OR OPENGL_FOUND)
303
304 if(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
305   set(kdenlive_SRCS
306     ${kdenlive_SRCS}
307     v4l/v4lcapture.cpp
308     v4l/src.c
309   )
310 endif(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
311
312 if(QJSON_FOUND)
313   set(kdenlive_SRCS
314     ${kdenlive_SRCS}
315     onmonitoritems/rotoscoping/bpointitem.cpp
316     onmonitoritems/rotoscoping/nearestpoint.cpp
317     onmonitoritems/rotoscoping/splineitem.cpp
318     rotoscoping/rotowidget.cpp
319   )
320 endif(QJSON_FOUND)
321
322 # Add libdl
323 find_library(DL_LIB NAMES ${CMAKE_DL_LIBS})
324 message(STATUS "using dl library: ${DL_LIB}")
325
326 kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc)
327 qt4_add_dbus_adaptor(kdenlive_SRCS org.kdenlive.MainWindow.xml mainwindow.h MainWindow)
328 kde4_add_executable(kdenlive ${kdenlive_SRCS} ${kdenlive_UI})
329
330 if(${KDE_VERSION} VERSION_LESS 4.3.80)
331   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
332 else(${KDE_VERSION} VERSION_LESS 4.3.80)
333   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
334 endif(${KDE_VERSION} VERSION_LESS 4.3.80)
335
336 target_link_libraries(kdenlive
337   ${KDE4_KDEUI_LIBS}
338   ${KDE4_KIO_LIBS}
339   ${KNEWSTUFF_LIBS}
340   ${LIBMLTPLUS_LIBRARY}
341   ${LIBMLT_LIBRARY}
342   ${optional_libs}
343   ${KDE4_KNOTIFYCONFIG_LIBRARY}
344   ${KDE4_KROSSUI_LIBS}
345   ${CMAKE_DL_LIBS}
346   ${CMAKE_THREAD_LIBS_INIT}
347 )
348
349 if(Q_WS_X11)
350   target_link_libraries(kdenlive ${X11_LIBRARIES})
351 endif(Q_WS_X11)
352
353 if(APPLE)
354   find_package(SDL REQUIRED)
355   target_link_libraries(kdenlive ${SDL_LIBRARY})
356   target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY})
357   target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
358 else(APPLE)
359   add_definitions(-DHAVE_V4L2)
360   if(OPENGL_FOUND)
361     target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY})
362     target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
363   endif(OPENGL_FOUND)
364 endif(APPLE)
365
366 install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR})
367 install(FILES kdenliveui.rc kdenlive.notifyrc DESTINATION ${DATA_INSTALL_DIR}/kdenlive)
368 install(FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR})
369 install(FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
370 kde4_install_icons(${ICON_INSTALL_DIR})
371 install(FILES kdenlive_titles.knsrc kdenlive_wipes.knsrc kdenlive_renderprofiles.knsrc kdenlive_projectprofiles.knsrc kdenlivetranscodingrc DESTINATION ${CONFIG_INSTALL_DIR})