7 find_package(OpenGL REQUIRED)
9 find_package(SDL REQUIRED)
11 macro_optional_find_package(Nepomuk)
12 macro_optional_find_package(QJSON)
14 option(WITH_V4L "Build capture support with Video4Linux" ON)
15 option(WITH_JogShuttle "Build Jog/Shuttle support" ON)
16 option(WITH_BlackMagic "Build Blackmagic Decklinkl support" ON)
19 # This can be changed to support FreeBSD as soon as we move to a newer V4L2
21 check_include_files(linux/ioctl.h HAVE_LINUX_IOCTL_H)
22 if(HAVE_LINUX_IOCTL_H)
24 endif(HAVE_LINUX_IOCTL_H)
28 check_include_files(linux/input.h HAVE_LINUX_INPUT_H)
29 if(HAVE_LINUX_INPUT_H)
30 set(BUILD_JogShuttle TRUE)
31 endif(HAVE_LINUX_INPUT_H)
32 endif(WITH_JogShuttle)
35 set(BUILD_BlackMagic TRUE)
36 endif(WITH_BlackMagic)
38 macro_log_feature(QT_QTOPENGL_FOUND
40 "Qt bindings for the OpenGL library"
41 "http://qt.nokia.com/products/qt"
44 "QtOpenGL library and headers (most likely called libqt4-opengl and libqt4-opengl-dev)"
47 macro_log_feature(QT_QTSCRIPT_FOUND
49 "Qt module providing core scripting facilities"
50 "http://qt.nokia.com/products/qt"
53 "QtScript library (most likely called libqt4-script)"
57 macro_log_feature(SDL_FOUND
59 "Cross-platform multimedia library"
60 "http://www.libsdl.org"
65 macro_log_feature(Nepomuk_FOUND
67 "Support for the Nepomuk semantic desktop system"
68 "http://nepomuk.semanticdesktop.org"
71 macro_log_feature(QJSON_FOUND
73 "Qt-based library that maps JSON data to QVariant objects"
74 "http://qjson.sourceforge.net"
77 "Required to build the rotoscoping filter and for Freesound.org queries"
81 add_subdirectory(audioscopes)
82 add_subdirectory(beziercurve)
83 add_subdirectory(colorcorrection)
84 add_subdirectory(colorscopes)
85 add_subdirectory(commands)
87 add_subdirectory(projecttree)
88 add_subdirectory(utils)
89 add_subdirectory(databackup)
90 add_subdirectory(kiss_fft)
92 add_subdirectory(mimetypes)
93 add_subdirectory(onmonitoritems)
94 add_subdirectory(simplekeyframes)
95 add_subdirectory(stopmotion)
98 add_subdirectory(onmonitoritems/rotoscoping)
99 add_subdirectory(rotoscoping)
103 add_subdirectory(v4l)
107 add_subdirectory(blackmagic)
108 endif(BUILD_BlackMagic)
110 list(APPEND kdenlive_SRCS
116 abstractgroupitem.cpp
118 abstractscopewidget.cpp
121 choosecolorwidget.cpp
122 clipdurationdialog.cpp
128 colorpickerwidget.cpp
139 documentvalidator.cpp
140 doubleparameterwidget.cpp
143 dvdwizardchapters.cpp
148 effectslistwidget.cpp
151 encodingprofilesdialog.cpp
152 folderprojectitem.cpp
156 graphicsscenerectmove.cpp
161 kdenlivesettingsdialog.cpp
167 managecapturesdialog.cpp
171 monitoreditwidget.cpp
188 statusbarmessagelabel.cpp
195 tracksconfigdialog.cpp
198 transitionsettings.cpp
203 kde4_add_ui_files(kdenlive_UIS
204 widgets/addtrack_ui.ui
205 widgets/archivewidget_ui.ui
206 widgets/audiospectrum_ui.ui
207 widgets/backupdialog_ui.ui
208 widgets/bezierspline_ui.ui
209 widgets/boolval_ui.ui
210 widgets/clipdurationdialog_ui.ui
211 widgets/clipproperties_ui.ui
212 widgets/cliptranscode_ui.ui
213 widgets/clipstabilize_ui.ui
214 widgets/colorclip_ui.ui
215 widgets/colorplaneexport_ui.ui
216 widgets/configcapture_ui.ui
217 widgets/configenv_ui.ui
218 widgets/configjogshuttle_ui.ui
219 widgets/configmisc_ui.ui
220 widgets/configproject_ui.ui
221 widgets/configsdl_ui.ui
222 widgets/configtimeline_ui.ui
223 widgets/configtranscode_ui.ui
224 widgets/dvdwizardchapters_ui.ui
225 widgets/dvdwizardmenu_ui.ui
226 widgets/dvdwizardstatus_ui.ui
227 widgets/dvdwizardvob_ui.ui
228 widgets/effectlist_ui.ui
229 widgets/effectstack_ui.ui
230 widgets/freesound_ui.ui
231 widgets/geometryval_ui.ui
232 widgets/geometrywidget_ui.ui
233 widgets/histogram_ui.ui
234 widgets/keyframedialog_ui.ui
235 widgets/keyframeeditor_ui.ui
236 widgets/keyframewidget_ui.ui
237 widgets/listval_ui.ui
238 widgets/managecaptures_ui.ui
239 widgets/manageencodingprofile_ui.ui
240 widgets/markerdialog_ui.ui
241 widgets/missingclips_ui.ui
242 widgets/monitoreditwidget_ui.ui
243 widgets/profiledialog_ui.ui
244 widgets/projectsettings_ui.ui
245 widgets/recmonitor_ui.ui
246 widgets/renderwidget_ui.ui
247 widgets/rgbparade_ui.ui
248 widgets/saveprofile_ui.ui
249 widgets/slideshowclip_ui.ui
250 widgets/smconfig_ui.ui
251 widgets/spacerdialog_ui.ui
252 widgets/spectrogram_ui.ui
253 widgets/stopmotion_ui.ui
254 widgets/templateclip_ui.ui
255 widgets/timeline_ui.ui
256 widgets/timelinebuttons_ui.ui
257 widgets/titlewidget_ui.ui
258 widgets/trackheader_ui.ui
259 widgets/tracksconfigdialog_ui.ui
260 widgets/transitionsettings_ui.ui
261 widgets/unicodedialog_ui.ui
263 widgets/vectorscope_ui.ui
264 widgets/waveform_ui.ui
265 widgets/wipeval_ui.ui
266 widgets/wizardcapture_ui.ui
267 widgets/wizardcheck_ui.ui
268 widgets/wizardextra_ui.ui
269 widgets/wizardmltcheck_ui.ui
270 widgets/wizardstandard_ui.ui
271 widgets/keywordval_ui.ui
272 widgets/fontval_ui.ui
273 widgets/cutjobdialog_ui.ui
277 list(APPEND kdenlive_SRCS videoglwidget.cpp)
281 list(APPEND kdenlive_SRCS
286 endif(BUILD_JogShuttle)
288 kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc)
289 qt4_add_dbus_adaptor(kdenlive_SRCS
290 org.kdenlive.MainWindow.xml
294 qt4_add_resources(kdenlive_SRCS widgets/resources.qrc)
295 kde4_add_executable(kdenlive
300 # To compile kiss_fft.
301 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=c99")
303 # KDE definitions and include directories *must* always come first, Qt follows
304 # (to avoid breaking builds when KDE and/or Qt are installed to different
306 add_definitions(${KDE4_DEFINITIONS})
310 ${KDE4_INCLUDES} # Adds Qt include directories too.
311 ${LIBMLT_INCLUDE_DIR}
312 ${LIBMLTPLUS_INCLUDE_DIR}
315 # Adds Qt definitions and include directories, and sets QT_LIBRARIES according
316 # to the components requested in find_package().
317 include(${QT_USE_FILE})
319 if(${KDE_VERSION} VERSION_LESS 4.3.80)
320 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
321 else(${KDE_VERSION} VERSION_LESS 4.3.80)
322 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
323 endif(${KDE_VERSION} VERSION_LESS 4.3.80)
325 target_link_libraries(kdenlive
328 ${KDE4_KNEWSTUFF_LIBS}
329 ${KDE4_KNOTIFYCONFIG_LIBRARY}
334 ${LIBMLTPLUS_LIBRARY}
336 ${CMAKE_THREAD_LIBS_INIT}
340 include_directories(${X11_Xlib_INCLUDE_PATH})
341 target_link_libraries(kdenlive ${X11_LIBRARIES})
344 if(OPENGL_FOUND AND QT_QTOPENGL_FOUND)
345 add_definitions(-DUSE_OPENGL)
346 target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
347 endif(OPENGL_FOUND AND QT_QTOPENGL_FOUND)
350 target_link_libraries(kdenlive ${SDL_LIBRARY})
354 add_definitions(-DUSE_NEPOMUK)
355 include_directories(${NEPOMUK_INCLUDES})
356 target_link_libraries(kdenlive ${NEPOMUK_LIBRARIES})
360 add_definitions(-DUSE_QJSON)
361 include_directories(${QJSON_INCLUDE_DIR})
362 target_link_libraries(kdenlive ${QJSON_LIBRARIES})
366 add_definitions(-DUSE_V4L)
370 add_definitions(-DUSE_BLACKMAGIC)
371 endif(BUILD_BlackMagic)
374 add_definitions(-DUSE_JOGSHUTTLE)
375 endif(BUILD_JogShuttle)
377 install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR})
381 DESTINATION ${DATA_INSTALL_DIR}/kdenlive
383 install(FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR})
385 kdenlive_projectprofiles.knsrc
386 kdenlive_renderprofiles.knsrc
387 kdenlive_titles.knsrc
389 kdenlivetranscodingrc
390 DESTINATION ${CONFIG_INSTALL_DIR}
392 kde4_install_icons(${ICON_INSTALL_DIR})
393 install(FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})