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