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