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
116 clipdurationdialog.cpp
132 documentvalidator.cpp
133 doubleparameterwidget.cpp
136 dvdwizardchapters.cpp
141 effectslistwidget.cpp
143 encodingprofilesdialog.cpp
144 folderprojectitem.cpp
148 graphicsscenerectmove.cpp
153 kdenlivesettingsdialog.cpp
159 managecapturesdialog.cpp
163 monitoreditwidget.cpp
180 statusbarmessagelabel.cpp
187 tracksconfigdialog.cpp
190 transitionsettings.cpp
195 kde4_add_ui_files(kdenlive_UIS
197 ui/archivewidget_ui.ui
198 ui/audiospectrum_ui.ui
199 ui/backupdialog_ui.ui
200 ui/bezierspline_ui.ui
202 ui/clipdurationdialog_ui.ui
203 ui/clipproperties_ui.ui
204 ui/cliptranscode_ui.ui
205 ui/collapsiblewidget_ui.ui
206 ui/clipstabilize_ui.ui
208 ui/colorplaneexport_ui.ui
209 ui/configcapture_ui.ui
211 ui/configjogshuttle_ui.ui
213 ui/configproject_ui.ui
215 ui/configtimeline_ui.ui
216 ui/configtranscode_ui.ui
217 ui/dvdwizardchapters_ui.ui
218 ui/dvdwizardmenu_ui.ui
219 ui/dvdwizardstatus_ui.ui
220 ui/dvdwizardvob_ui.ui
223 ui/effectstack2_ui.ui
226 ui/geometrywidget_ui.ui
228 ui/keyframedialog_ui.ui
229 ui/keyframeeditor_ui.ui
230 ui/keyframewidget_ui.ui
232 ui/managecaptures_ui.ui
233 ui/manageencodingprofile_ui.ui
234 ui/markerdialog_ui.ui
235 ui/missingclips_ui.ui
236 ui/monitoreditwidget_ui.ui
237 ui/profiledialog_ui.ui
238 ui/projectsettings_ui.ui
240 ui/renderwidget_ui.ui
243 ui/slideshowclip_ui.ui
245 ui/spacerdialog_ui.ui
248 ui/templateclip_ui.ui
250 ui/timelinebuttons_ui.ui
253 ui/tracksconfigdialog_ui.ui
254 ui/transitionsettings_ui.ui
255 ui/unicodewidget_ui.ui
260 ui/wizardcapture_ui.ui
263 ui/wizardmltcheck_ui.ui
264 ui/wizardstandard_ui.ui
267 ui/cutjobdialog_ui.ui
268 ui/scenecutdialog_ui.ui
269 ui/importkeyframesdialog_ui.ui
273 list(APPEND kdenlive_SRCS videoglwidget.cpp)
277 list(APPEND kdenlive_SRCS
282 endif(BUILD_JogShuttle)
284 kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc)
285 qt4_add_dbus_adaptor(kdenlive_SRCS
286 org.kdenlive.MainWindow.xml
290 qt4_add_resources(kdenlive_SRCS ui/resources.qrc)
291 kde4_add_executable(kdenlive
296 # To compile kiss_fft.
297 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=c99")
299 # KDE definitions and include directories *must* always come first, Qt follows
300 # (to avoid breaking builds when KDE and/or Qt are installed to different
302 add_definitions(${KDE4_DEFINITIONS})
306 ${KDE4_INCLUDES} # Adds Qt include directories too.
307 ${LIBMLT_INCLUDE_DIR}
308 ${LIBMLTPLUS_INCLUDE_DIR}
312 # Adds Qt definitions and include directories, and sets QT_LIBRARIES according
313 # to the components requested in find_package().
314 include(${QT_USE_FILE})
316 if(${KDE_VERSION} VERSION_LESS 4.3.80)
317 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
318 else(${KDE_VERSION} VERSION_LESS 4.3.80)
319 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
320 endif(${KDE_VERSION} VERSION_LESS 4.3.80)
322 target_link_libraries(kdenlive
325 ${KDE4_KNEWSTUFF_LIBS}
326 ${KDE4_KNOTIFYCONFIG_LIBRARY}
331 ${LIBMLTPLUS_LIBRARY}
333 ${CMAKE_THREAD_LIBS_INIT}
337 include_directories(${X11_Xlib_INCLUDE_PATH})
338 target_link_libraries(kdenlive ${X11_LIBRARIES})
341 if(OPENGL_FOUND AND QT_QTOPENGL_FOUND)
342 add_definitions(-DUSE_OPENGL)
343 target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
344 endif(OPENGL_FOUND AND QT_QTOPENGL_FOUND)
347 target_link_libraries(kdenlive ${SDL_LIBRARY})
350 if(NepomukCore_FOUND)
351 add_definitions(-DUSE_NEPOMUKCORE)
352 include_directories(${NEPOMUK_CORE_INCLUDE_DIR})
353 target_link_libraries(kdenlive ${NEPOMUK_CORE_LIBRARY})
354 else(NepomukWidgets_FOUND)
356 add_definitions(-DUSE_NEPOMUK)
357 include_directories(${NEPOMUK_INCLUDES})
358 target_link_libraries(kdenlive ${NEPOMUK_LIBRARIES})
363 add_definitions(-DUSE_QJSON)
364 include_directories(${QJSON_INCLUDE_DIR})
365 target_link_libraries(kdenlive ${QJSON_LIBRARIES})
369 include_directories(${LIBV4L2_INCLUDE_DIR})
370 target_link_libraries(kdenlive ${LIBV4L2_LIBRARY})
371 add_definitions(-DUSE_V4L)
375 add_definitions(-DUSE_JOGSHUTTLE)
376 endif(BUILD_JogShuttle)
378 install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR})
382 DESTINATION ${DATA_INSTALL_DIR}/kdenlive
384 install(FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR})
386 kdenlive_projectprofiles.knsrc
387 kdenlive_renderprofiles.knsrc
388 kdenlive_titles.knsrc
390 kdenlivetranscodingrc
391 DESTINATION ${CONFIG_INSTALL_DIR}
393 add_subdirectory(icons)
394 install(FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})