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