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 choosecolorwidget.cpp
117 clipdurationdialog.cpp
123 colorpickerwidget.cpp
134 documentvalidator.cpp
135 doubleparameterwidget.cpp
138 dvdwizardchapters.cpp
143 effectslistwidget.cpp
145 encodingprofilesdialog.cpp
146 folderprojectitem.cpp
150 graphicsscenerectmove.cpp
155 kdenlivesettingsdialog.cpp
161 managecapturesdialog.cpp
165 monitoreditwidget.cpp
182 statusbarmessagelabel.cpp
189 tracksconfigdialog.cpp
192 transitionsettings.cpp
197 kde4_add_ui_files(kdenlive_UIS
199 ui/archivewidget_ui.ui
200 ui/audiospectrum_ui.ui
201 ui/backupdialog_ui.ui
202 ui/bezierspline_ui.ui
204 ui/clipdurationdialog_ui.ui
205 ui/clipproperties_ui.ui
206 ui/cliptranscode_ui.ui
207 ui/collapsiblewidget_ui.ui
208 ui/clipstabilize_ui.ui
210 ui/colorplaneexport_ui.ui
211 ui/configcapture_ui.ui
213 ui/configjogshuttle_ui.ui
215 ui/configproject_ui.ui
217 ui/configtimeline_ui.ui
218 ui/configtranscode_ui.ui
219 ui/dvdwizardchapters_ui.ui
220 ui/dvdwizardmenu_ui.ui
221 ui/dvdwizardstatus_ui.ui
222 ui/dvdwizardvob_ui.ui
225 ui/effectstack2_ui.ui
228 ui/geometrywidget_ui.ui
230 ui/keyframedialog_ui.ui
231 ui/keyframeeditor_ui.ui
232 ui/keyframewidget_ui.ui
234 ui/managecaptures_ui.ui
235 ui/manageencodingprofile_ui.ui
236 ui/markerdialog_ui.ui
237 ui/missingclips_ui.ui
238 ui/monitoreditwidget_ui.ui
239 ui/profiledialog_ui.ui
240 ui/projectsettings_ui.ui
242 ui/renderwidget_ui.ui
245 ui/slideshowclip_ui.ui
247 ui/spacerdialog_ui.ui
250 ui/templateclip_ui.ui
252 ui/timelinebuttons_ui.ui
255 ui/tracksconfigdialog_ui.ui
256 ui/transitionsettings_ui.ui
257 ui/unicodewidget_ui.ui
262 ui/wizardcapture_ui.ui
265 ui/wizardmltcheck_ui.ui
266 ui/wizardstandard_ui.ui
269 ui/cutjobdialog_ui.ui
270 ui/scenecutdialog_ui.ui
271 ui/importkeyframesdialog_ui.ui
275 list(APPEND kdenlive_SRCS videoglwidget.cpp)
279 list(APPEND kdenlive_SRCS
284 endif(BUILD_JogShuttle)
286 kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc)
287 qt4_add_dbus_adaptor(kdenlive_SRCS
288 org.kdenlive.MainWindow.xml
292 qt4_add_resources(kdenlive_SRCS ui/resources.qrc)
293 kde4_add_executable(kdenlive
298 # To compile kiss_fft.
299 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=c99")
301 # KDE definitions and include directories *must* always come first, Qt follows
302 # (to avoid breaking builds when KDE and/or Qt are installed to different
304 add_definitions(${KDE4_DEFINITIONS})
308 ${KDE4_INCLUDES} # Adds Qt include directories too.
309 ${LIBMLT_INCLUDE_DIR}
310 ${LIBMLTPLUS_INCLUDE_DIR}
314 # Adds Qt definitions and include directories, and sets QT_LIBRARIES according
315 # to the components requested in find_package().
316 include(${QT_USE_FILE})
318 if(${KDE_VERSION} VERSION_LESS 4.3.80)
319 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
320 else(${KDE_VERSION} VERSION_LESS 4.3.80)
321 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
322 endif(${KDE_VERSION} VERSION_LESS 4.3.80)
324 target_link_libraries(kdenlive
327 ${KDE4_KNEWSTUFF_LIBS}
328 ${KDE4_KNOTIFYCONFIG_LIBRARY}
333 ${LIBMLTPLUS_LIBRARY}
335 ${CMAKE_THREAD_LIBS_INIT}
339 include_directories(${X11_Xlib_INCLUDE_PATH})
340 target_link_libraries(kdenlive ${X11_LIBRARIES})
343 if(OPENGL_FOUND AND QT_QTOPENGL_FOUND)
344 add_definitions(-DUSE_OPENGL)
345 target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
346 endif(OPENGL_FOUND AND QT_QTOPENGL_FOUND)
349 target_link_libraries(kdenlive ${SDL_LIBRARY})
352 if(NepomukCore_FOUND)
353 add_definitions(-DUSE_NEPOMUKCORE)
354 include_directories(${NEPOMUK_CORE_INCLUDE_DIR})
355 target_link_libraries(kdenlive ${NEPOMUK_CORE_LIBRARY})
356 else(NepomukWidgets_FOUND)
358 add_definitions(-DUSE_NEPOMUK)
359 include_directories(${NEPOMUK_INCLUDES})
360 target_link_libraries(kdenlive ${NEPOMUK_LIBRARIES})
365 add_definitions(-DUSE_QJSON)
366 include_directories(${QJSON_INCLUDE_DIR})
367 target_link_libraries(kdenlive ${QJSON_LIBRARIES})
371 include_directories(${LIBV4L2_INCLUDE_DIR})
372 target_link_libraries(kdenlive ${LIBV4L2_LIBRARY})
373 add_definitions(-DUSE_V4L)
377 add_definitions(-DUSE_JOGSHUTTLE)
378 endif(BUILD_JogShuttle)
380 install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR})
384 DESTINATION ${DATA_INSTALL_DIR}/kdenlive
386 install(FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR})
388 kdenlive_projectprofiles.knsrc
389 kdenlive_renderprofiles.knsrc
390 kdenlive_titles.knsrc
392 kdenlivetranscodingrc
393 DESTINATION ${CONFIG_INSTALL_DIR}
395 add_subdirectory(icons)
396 install(FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})