]> git.sesse.net Git - kdenlive/blob - src/CMakeLists.txt
Basic webcam (video4linux) autodetection
[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   v4l/v4lcapture.cpp
243   v4l/src.c
244   v4l/src_v4l2.c
245   onmonitoritems/abstractonmonitoritem.cpp 
246   onmonitoritems/onmonitorrectitem.cpp
247   onmonitoritems/onmonitorcornersitem.cpp
248   monitorscenecontrolwidget.cpp
249   cornerswidget.cpp
250 )
251
252
253 add_subdirectory( ${CMAKE_SOURCE_DIR}/src/colorcorrection )
254 add_subdirectory( ${CMAKE_SOURCE_DIR}/src/onmonitoritems )
255
256 add_definitions( ${KDE4_DEFINITIONS} )
257
258 if(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
259   add_definitions(-DNO_JOGSHUTTLE)
260 else(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
261   set(kdenlive_SRCS jogshuttle.cpp ${kdenlive_SRCS})
262 endif(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
263
264 if (APPLE OR OPENGL_FOUND)
265   add_definitions(-DUSE_OPEN_GL)
266   set(kdenlive_SRCS videoglwidget.cpp ${kdenlive_SRCS})
267 endif (APPLE OR OPENGL_FOUND)
268
269
270 # Add libdl
271 find_library( DL_LIB NAMES ${CMAKE_DL_LIBS} )
272 MESSAGE( STATUS "using dl library: ${DL_LIB}" )
273
274 kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc )
275 QT4_ADD_DBUS_ADAPTOR(kdenlive_SRCS org.kdenlive.MainWindow.xml mainwindow.h MainWindow)
276 kde4_add_executable(kdenlive ${kdenlive_SRCS} ${kdenlive_UI})
277
278 if (${KDE_VERSION} VERSION_LESS 4.3.80)
279   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
280 else (${KDE_VERSION} VERSION_LESS 4.3.80)
281   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
282 endif (${KDE_VERSION} VERSION_LESS 4.3.80)
283
284 target_link_libraries(kdenlive
285   ${KDE4_KDEUI_LIBS}
286   ${KDE4_KIO_LIBS}
287   ${KNEWSTUFF_LIBS}
288   ${LIBMLTPLUS_LIBRARY}
289   ${LIBMLT_LIBRARY}
290   ${optional_libs}
291   ${KDE4_KNOTIFYCONFIG_LIBRARY}
292   ${KDE4_KROSSUI_LIBS}
293   ${CMAKE_DL_LIBS}
294 )
295
296 if (Q_WS_X11)
297   target_link_libraries(kdenlive ${X11_LIBRARIES})
298 endif (Q_WS_X11)
299
300 if (APPLE)
301   find_package(SDL REQUIRED)
302   target_link_libraries(kdenlive ${SDL_LIBRARY})
303   target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY})
304   target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
305 else (APPLE)
306   add_definitions(-DHAVE_V4L2)
307   if (OPENGL_FOUND)
308       target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY})
309       target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
310   endif (OPENGL_FOUND)
311 endif (APPLE)
312
313 install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR})
314 install( FILES kdenliveui.rc kdenlive.notifyrc DESTINATION  ${DATA_INSTALL_DIR}/kdenlive )
315 install (FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR})
316 install (FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
317 kde4_install_icons(${ICON_INSTALL_DIR})
318 install( FILES kdenlive_titles.knsrc kdenlive_wipes.knsrc kdenlive_renderprofiles.knsrc kdenlive_projectprofiles.knsrc kdenlivetranscodingrc DESTINATION  ${CONFIG_INSTALL_DIR} )
319 kde4_install_icons( ${ICON_INSTALL_DIR} )
320
321