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