]> git.sesse.net Git - kdenlive/blob - src/CMakeLists.txt
Fix QImageBlitz detection
[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 ${QIMAGEBLITZ_LIBRARIES} )
16     add_definitions(-DQIMAGEBLITZ)
17     MESSAGE( STATUS "Found QImageBlitz: ${QIMAGEBLITZ_LIBRARIES}" )
18 else (QIMAGEBLITZ_FOUND)
19     MESSAGE( WARNING "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/wizardcheck_ui.ui
93   widgets/wizardmltcheck_ui.ui
94   widgets/spacerdialog_ui.ui
95   widgets/addtrack_ui.ui
96   widgets/dvdwizardvob_ui.ui
97   widgets/dvdwizardmenu_ui.ui
98   widgets/dvdwizardstatus_ui.ui
99   widgets/dvdwizardchapters_ui.ui
100   widgets/missingclips_ui.ui
101   widgets/cliptranscode_ui.ui
102   widgets/templateclip_ui.ui
103   widgets/keyframeeditor_ui.ui
104   widgets/timecodedisplay_ui.ui
105   widgets/tracksconfigdialog_ui.ui
106   widgets/urlval_ui.ui
107   widgets/vectorscope_ui.ui
108   widgets/colorplaneexport_ui.ui
109   widgets/waveform_ui.ui
110   widgets/rgbparade_ui.ui
111   widgets/histogram_ui.ui
112   widgets/geometrywidget_ui.ui
113   widgets/stopmotion_ui.ui
114   widgets/monitorscenecontrolwidget_ui.ui
115   widgets/cornerswidget_ui.ui
116 )
117
118 set(kdenlive_SRCS
119   addclipcommand.cpp
120   main.cpp
121   mainwindow.cpp
122   customruler.cpp
123   smallruler.cpp
124   projectlist.cpp
125   projectitem.cpp
126   monitor.cpp
127   gentime.cpp
128   renderer.cpp
129   kdenlivedoc.cpp
130   projectlistview.cpp
131   trackview.cpp
132   docclipbase.cpp
133   timecode.cpp
134   monitormanager.cpp
135   headertrack.cpp
136   customtrackview.cpp
137   clipitem.cpp
138   moveclipcommand.cpp
139   resizeclipcommand.cpp
140   razorclipcommand.cpp
141   addtimelineclipcommand.cpp
142   addmarkercommand.cpp
143   kthumb.cpp
144   clipmanager.cpp
145   effectslist.cpp
146   initeffects.cpp
147   effectslistview.cpp
148   addeffectcommand.cpp
149   editeffectcommand.cpp
150   moveeffectcommand.cpp
151   effectstackview.cpp
152   effectstackedit.cpp
153   parameterplotter.cpp
154   profilesdialog.cpp
155   projectsettings.cpp
156   kdenlivesettingsdialog.cpp
157   complexparameter.cpp
158   titlewidget.cpp
159   unicodedialog.cpp
160   graphicsscenerectmove.cpp
161   effectslistwidget.cpp
162   titledocument.cpp
163   transition.cpp
164   renderwidget.cpp
165   abstractclipitem.cpp
166   transitionsettings.cpp
167   recmonitor.cpp
168   addtransitioncommand.cpp
169   edittransitioncommand.cpp
170   addfoldercommand.cpp
171   editfoldercommand.cpp
172   clipproperties.cpp
173   movetransitioncommand.cpp
174   slideshowclip.cpp
175   markerdialog.cpp
176   guide.cpp
177   editguidecommand.cpp
178   statusbarmessagelabel.cpp
179   editkeyframecommand.cpp
180   clipdurationdialog.cpp
181   managecapturesdialog.cpp
182   changespeedcommand.cpp
183   geometryval.cpp
184   wizard.cpp
185   customtrackscene.cpp
186   abstractgroupitem.cpp
187   keyframehelper.cpp
188   editclipcommand.cpp
189   insertspacecommand.cpp
190   spacerdialog.cpp
191   addtrackcommand.cpp
192   movegroupcommand.cpp
193   dvdwizardvob.cpp
194   dvdwizardmenu.cpp
195   dvdwizard.cpp
196   locktrackcommand.cpp
197   groupclipscommand.cpp
198   splitaudiocommand.cpp
199   changecliptypecommand.cpp
200   documentchecker.cpp
201   dvdwizardchapters.cpp
202   documentvalidator.cpp
203   cliptranscode.cpp
204   keyframeedit.cpp
205   positionedit.cpp
206   trackdialog.cpp
207   subprojectitem.cpp
208   folderprojectitem.cpp
209   addclipcutcommand.cpp
210   editclipcutcommand.cpp
211   KoSliderCombo.cpp
212   kis_cubic_curve.cpp
213   kis_curve_widget.cpp
214   timecodedisplay.cpp
215   tracksconfigdialog.cpp
216   configtrackscommand.cpp
217   abstractscopewidget.cpp
218   rebuildgroupcommand.cpp
219   histogram.cpp
220   rgbparade.cpp
221   vectorscope.cpp
222   waveform.cpp
223   colorplaneexport.cpp
224   colortools.cpp
225   colorcorrection/histogramgenerator.cpp
226   colorcorrection/rgbparadegenerator.cpp
227   colorcorrection/vectorscopegenerator.cpp
228   colorcorrection/waveformgenerator.cpp
229   razorgroupcommand.cpp
230   colorpickerwidget.cpp
231   choosecolorwidget.cpp
232   monitorscene.cpp
233   geometrywidget.cpp
234   doubleparameterwidget.cpp
235   audiosignal.cpp
236   blackmagic/include/DeckLinkAPIDispatch.cpp
237   stopmotion/stopmotion.cpp
238   stopmotion/capturehandler.cpp
239   blackmagic/capture.cpp
240   blackmagic/devices.cpp
241   v4l/v4lcapture.cpp
242   v4l/src.c
243   v4l/src_v4l2.c
244   onmonitoritems/abstractonmonitoritem.cpp 
245   onmonitoritems/onmonitorrectitem.cpp
246   onmonitoritems/onmonitorcornersitem.cpp
247   monitorscenecontrolwidget.cpp
248   cornerswidget.cpp
249 )
250
251
252 add_subdirectory( ${CMAKE_SOURCE_DIR}/src/colorcorrection )
253 add_subdirectory( ${CMAKE_SOURCE_DIR}/src/onmonitoritems )
254
255 add_definitions( ${KDE4_DEFINITIONS} )
256
257 if(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
258   add_definitions(-DNO_JOGSHUTTLE)
259 else(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
260   set(kdenlive_SRCS jogshuttle.cpp ${kdenlive_SRCS})
261 endif(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
262
263 if (APPLE OR OPENGL_FOUND)
264   add_definitions(-DUSE_OPEN_GL)
265   set(kdenlive_SRCS videoglwidget.cpp ${kdenlive_SRCS})
266 endif (APPLE OR OPENGL_FOUND)
267
268
269 # Add libdl
270 find_library( DL_LIB NAMES ${CMAKE_DL_LIBS} )
271 MESSAGE( STATUS "using dl library: ${DL_LIB}" )
272
273 kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc )
274 QT4_ADD_DBUS_ADAPTOR(kdenlive_SRCS org.kdenlive.MainWindow.xml mainwindow.h MainWindow)
275 kde4_add_executable(kdenlive ${kdenlive_SRCS} ${kdenlive_UI})
276
277 if (${KDE_VERSION} VERSION_LESS 4.3.80)
278   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
279 else (${KDE_VERSION} VERSION_LESS 4.3.80)
280   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
281 endif (${KDE_VERSION} VERSION_LESS 4.3.80)
282
283 target_link_libraries(kdenlive
284   ${KDE4_KDEUI_LIBS}
285   ${KDE4_KIO_LIBS}
286   ${KNEWSTUFF_LIBS}
287   ${LIBMLTPLUS_LIBRARY}
288   ${LIBMLT_LIBRARY}
289   ${optional_libs}
290   ${KDE4_KNOTIFYCONFIG_LIBRARY}
291   ${KDE4_KROSSUI_LIBS}
292   ${CMAKE_DL_LIBS}
293 )
294
295 if (Q_WS_X11)
296   target_link_libraries(kdenlive ${X11_LIBRARIES})
297 endif (Q_WS_X11)
298
299 if (APPLE)
300   find_package(SDL REQUIRED)
301   target_link_libraries(kdenlive ${SDL_LIBRARY})
302   target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY})
303   target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
304 else (APPLE)
305   add_definitions(-DHAVE_V4L2)
306   if (OPENGL_FOUND)
307       target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY})
308       target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
309   endif (OPENGL_FOUND)
310 endif (APPLE)
311
312 install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR})
313 install( FILES kdenliveui.rc kdenlive.notifyrc DESTINATION  ${DATA_INSTALL_DIR}/kdenlive )
314 install (FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR})
315 install (FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
316 kde4_install_icons(${ICON_INSTALL_DIR})
317 install( FILES kdenlive_titles.knsrc kdenlive_wipes.knsrc kdenlive_renderprofiles.knsrc kdenlive_projectprofiles.knsrc kdenlivetranscodingrc DESTINATION  ${CONFIG_INSTALL_DIR} )
318 kde4_install_icons( ${ICON_INSTALL_DIR} )
319
320