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)
20 # This can be changed to support FreeBSD as soon as we move to a newer V4L2
23 macro_log_feature(LIBV4L2_FOUND "libv4l" "Collection of video4linux support libraries" "http://hansdegoede.livejournal.com, http://linuxtv.org/hg/~hgoede/libv4l/" FALSE "" "Required for better webcam support")
30 check_include_files(linux/input.h HAVE_LINUX_INPUT_H)
31 if(HAVE_LINUX_INPUT_H)
32 set(BUILD_JogShuttle TRUE)
33 endif(HAVE_LINUX_INPUT_H)
34 endif(WITH_JogShuttle)
36 macro_log_feature(QT_QTOPENGL_FOUND
38 "Qt bindings for the OpenGL library"
39 "http://qt.nokia.com/products/qt"
42 "QtOpenGL library and headers (most likely called libqt4-opengl and libqt4-opengl-dev)"
45 macro_log_feature(QT_QTSCRIPT_FOUND
47 "Qt module providing core scripting facilities"
48 "http://qt.nokia.com/products/qt"
51 "QtScript library (most likely called libqt4-script)"
55 macro_log_feature(SDL_FOUND
57 "Cross-platform multimedia library"
58 "http://www.libsdl.org"
63 macro_log_feature(Nepomuk_FOUND
65 "Support for the Nepomuk semantic desktop system"
66 "http://nepomuk.semanticdesktop.org"
69 find_package(NepomukCore QUIET)
70 set_package_properties(NepomukCore PROPERTIES DESCRIPTION "The Nepomuk Core libraries" URL "http://www.kde.org" TYPE RECOMMENDED PURPOSE "Support for the Nepomuk semantic desktop system")
73 macro_log_feature(QJSON_FOUND
75 "Qt-based library that maps JSON data to QVariant objects"
76 "http://qjson.sourceforge.net"
79 "Required to build the rotoscoping filter and for Freesound.org queries"
83 add_subdirectory(beziercurve)
84 add_subdirectory(colorcorrection)
85 add_subdirectory(commands)
87 add_subdirectory(projecttree)
88 add_subdirectory(utils)
89 add_subdirectory(databackup)
90 add_subdirectory(effectstack)
91 add_subdirectory(mimetypes)
92 add_subdirectory(onmonitoritems)
93 add_subdirectory(scopes)
94 add_subdirectory(simplekeyframes)
95 add_subdirectory(stopmotion)
96 add_subdirectory(widgets)
99 add_subdirectory(onmonitoritems/rotoscoping)
100 add_subdirectory(rotoscoping)
104 add_subdirectory(v4l)
107 list(APPEND kdenlive_SRCS
113 abstractgroupitem.cpp
115 clipdurationdialog.cpp
130 documentvalidator.cpp
133 dvdwizardchapters.cpp
139 encodingprofilesdialog.cpp
140 folderprojectitem.cpp
143 graphicsscenerectmove.cpp
148 kdenlivesettingsdialog.cpp
153 managecapturesdialog.cpp
171 statusbarmessagelabel.cpp
177 tracksconfigdialog.cpp
180 transitionsettings.cpp
185 kde4_add_ui_files(kdenlive_UIS
187 ui/archivewidget_ui.ui
188 ui/audiospectrum_ui.ui
189 ui/backupdialog_ui.ui
190 ui/bezierspline_ui.ui
192 ui/clipdurationdialog_ui.ui
193 ui/clipproperties_ui.ui
194 ui/cliptranscode_ui.ui
195 ui/collapsiblewidget_ui.ui
196 ui/clipstabilize_ui.ui
198 ui/colorplaneexport_ui.ui
199 ui/configcapture_ui.ui
201 ui/configjogshuttle_ui.ui
203 ui/configproject_ui.ui
205 ui/configtimeline_ui.ui
206 ui/configtranscode_ui.ui
207 ui/dvdwizardchapters_ui.ui
208 ui/dvdwizardmenu_ui.ui
209 ui/dvdwizardstatus_ui.ui
210 ui/dvdwizardvob_ui.ui
213 ui/effectstack2_ui.ui
216 ui/geometrywidget_ui.ui
218 ui/keyframedialog_ui.ui
219 ui/keyframeeditor_ui.ui
220 ui/keyframewidget_ui.ui
222 ui/managecaptures_ui.ui
223 ui/manageencodingprofile_ui.ui
224 ui/markerdialog_ui.ui
225 ui/missingclips_ui.ui
226 ui/monitoreditwidget_ui.ui
227 ui/profiledialog_ui.ui
228 ui/projectsettings_ui.ui
230 ui/renderwidget_ui.ui
233 ui/slideshowclip_ui.ui
235 ui/spacerdialog_ui.ui
238 ui/templateclip_ui.ui
240 ui/timelinebuttons_ui.ui
243 ui/tracksconfigdialog_ui.ui
244 ui/transitionsettings_ui.ui
245 ui/unicodewidget_ui.ui
250 ui/wizardcapture_ui.ui
253 ui/wizardmltcheck_ui.ui
254 ui/wizardstandard_ui.ui
257 ui/cutjobdialog_ui.ui
258 ui/scenecutdialog_ui.ui
259 ui/importkeyframesdialog_ui.ui
263 list(APPEND kdenlive_SRCS videoglwidget.cpp)
267 list(APPEND kdenlive_SRCS
272 endif(BUILD_JogShuttle)
274 kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc)
275 qt4_add_dbus_adaptor(kdenlive_SRCS
276 org.kdenlive.MainWindow.xml
280 qt4_add_resources(kdenlive_SRCS ui/resources.qrc)
281 kde4_add_executable(kdenlive
286 # To compile kiss_fft.
287 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=c99")
289 # KDE definitions and include directories *must* always come first, Qt follows
290 # (to avoid breaking builds when KDE and/or Qt are installed to different
292 add_definitions(${KDE4_DEFINITIONS})
296 ${KDE4_INCLUDES} # Adds Qt include directories too.
297 ${LIBMLT_INCLUDE_DIR}
298 ${LIBMLTPLUS_INCLUDE_DIR}
302 # Adds Qt definitions and include directories, and sets QT_LIBRARIES according
303 # to the components requested in find_package().
304 include(${QT_USE_FILE})
306 if(${KDE_VERSION} VERSION_LESS 4.3.80)
307 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
308 else(${KDE_VERSION} VERSION_LESS 4.3.80)
309 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
310 endif(${KDE_VERSION} VERSION_LESS 4.3.80)
312 target_link_libraries(kdenlive
315 ${KDE4_KNEWSTUFF_LIBS}
316 ${KDE4_KNOTIFYCONFIG_LIBRARY}
321 ${LIBMLTPLUS_LIBRARY}
323 ${CMAKE_THREAD_LIBS_INIT}
327 include_directories(${X11_Xlib_INCLUDE_PATH})
328 target_link_libraries(kdenlive ${X11_LIBRARIES})
331 if(OPENGL_FOUND AND QT_QTOPENGL_FOUND)
332 add_definitions(-DUSE_OPENGL)
333 target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
334 endif(OPENGL_FOUND AND QT_QTOPENGL_FOUND)
337 target_link_libraries(kdenlive ${SDL_LIBRARY})
340 if(NepomukCore_FOUND)
341 add_definitions(-DUSE_NEPOMUKCORE)
342 include_directories(${NEPOMUK_CORE_INCLUDE_DIR})
343 target_link_libraries(kdenlive ${NEPOMUK_CORE_LIBRARY})
344 else(NepomukWidgets_FOUND)
346 add_definitions(-DUSE_NEPOMUK)
347 include_directories(${NEPOMUK_INCLUDES})
348 target_link_libraries(kdenlive ${NEPOMUK_LIBRARIES})
353 add_definitions(-DUSE_QJSON)
354 include_directories(${QJSON_INCLUDE_DIR})
355 target_link_libraries(kdenlive ${QJSON_LIBRARIES})
359 include_directories(${LIBV4L2_INCLUDE_DIR})
360 target_link_libraries(kdenlive ${LIBV4L2_LIBRARY})
361 add_definitions(-DUSE_V4L)
365 add_definitions(-DUSE_JOGSHUTTLE)
366 endif(BUILD_JogShuttle)
368 install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR})
372 DESTINATION ${DATA_INSTALL_DIR}/kdenlive
374 install(FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR})
376 kdenlive_projectprofiles.knsrc
377 kdenlive_renderprofiles.knsrc
378 kdenlive_titles.knsrc
380 kdenlivetranscodingrc
381 DESTINATION ${CONFIG_INSTALL_DIR}
383 add_subdirectory(icons)
384 install(FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})