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