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