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
114 clipdurationdialog.cpp
129 documentvalidator.cpp
132 dvdwizardchapters.cpp
138 encodingprofilesdialog.cpp
139 folderprojectitem.cpp
142 graphicsscenerectmove.cpp
147 kdenlivesettingsdialog.cpp
152 managecapturesdialog.cpp
170 statusbarmessagelabel.cpp
176 tracksconfigdialog.cpp
179 transitionsettings.cpp
184 kde4_add_ui_files(kdenlive_UIS
186 ui/archivewidget_ui.ui
187 ui/audiospectrum_ui.ui
188 ui/backupdialog_ui.ui
189 ui/bezierspline_ui.ui
191 ui/clipdurationdialog_ui.ui
192 ui/clipproperties_ui.ui
193 ui/cliptranscode_ui.ui
194 ui/collapsiblewidget_ui.ui
195 ui/clipstabilize_ui.ui
197 ui/colorplaneexport_ui.ui
198 ui/configcapture_ui.ui
200 ui/configjogshuttle_ui.ui
202 ui/configproject_ui.ui
204 ui/configtimeline_ui.ui
205 ui/configtranscode_ui.ui
206 ui/dvdwizardchapters_ui.ui
207 ui/dvdwizardmenu_ui.ui
208 ui/dvdwizardstatus_ui.ui
209 ui/dvdwizardvob_ui.ui
212 ui/effectstack2_ui.ui
215 ui/geometrywidget_ui.ui
217 ui/keyframedialog_ui.ui
218 ui/keyframeeditor_ui.ui
219 ui/keyframewidget_ui.ui
221 ui/managecaptures_ui.ui
222 ui/manageencodingprofile_ui.ui
223 ui/markerdialog_ui.ui
224 ui/missingclips_ui.ui
225 ui/monitoreditwidget_ui.ui
226 ui/profiledialog_ui.ui
227 ui/projectsettings_ui.ui
229 ui/renderwidget_ui.ui
232 ui/slideshowclip_ui.ui
234 ui/spacerdialog_ui.ui
237 ui/templateclip_ui.ui
239 ui/timelinebuttons_ui.ui
242 ui/tracksconfigdialog_ui.ui
243 ui/transitionsettings_ui.ui
244 ui/unicodewidget_ui.ui
249 ui/wizardcapture_ui.ui
252 ui/wizardmltcheck_ui.ui
253 ui/wizardstandard_ui.ui
256 ui/cutjobdialog_ui.ui
257 ui/scenecutdialog_ui.ui
258 ui/importkeyframesdialog_ui.ui
262 list(APPEND kdenlive_SRCS
267 endif(BUILD_JogShuttle)
269 kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc)
270 qt4_add_dbus_adaptor(kdenlive_SRCS
271 org.kdenlive.MainWindow.xml
275 qt4_add_resources(kdenlive_SRCS ui/resources.qrc)
276 kde4_add_executable(kdenlive
281 # To compile kiss_fft.
282 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=c99")
284 # KDE definitions and include directories *must* always come first, Qt follows
285 # (to avoid breaking builds when KDE and/or Qt are installed to different
287 add_definitions(${KDE4_DEFINITIONS})
291 ${KDE4_INCLUDES} # Adds Qt include directories too.
292 ${LIBMLT_INCLUDE_DIR}
293 ${LIBMLTPLUS_INCLUDE_DIR}
294 ${CMAKE_CURRENT_SOURCE_DIR}/lib/external
295 ${CMAKE_CURRENT_SOURCE_DIR}/lib
299 # Adds Qt definitions and include directories, and sets QT_LIBRARIES according
300 # to the components requested in find_package().
301 include(${QT_USE_FILE})
303 if(${KDE_VERSION} VERSION_LESS 4.3.80)
304 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
305 else(${KDE_VERSION} VERSION_LESS 4.3.80)
306 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
307 endif(${KDE_VERSION} VERSION_LESS 4.3.80)
309 target_link_libraries(kdenlive
312 ${KDE4_KNEWSTUFF_LIBS}
313 ${KDE4_KNOTIFYCONFIG_LIBRARY}
318 ${LIBMLTPLUS_LIBRARY}
320 ${CMAKE_THREAD_LIBS_INIT}
326 include_directories(${X11_Xlib_INCLUDE_PATH})
327 target_link_libraries(kdenlive ${X11_LIBRARIES})
331 target_link_libraries(kdenlive ${SDL_LIBRARY})
334 if(NepomukCore_FOUND)
335 add_definitions(-DUSE_NEPOMUKCORE)
336 include_directories(${NEPOMUK_CORE_INCLUDE_DIR})
337 target_link_libraries(kdenlive ${NEPOMUK_CORE_LIBRARY})
340 add_definitions(-DUSE_NEPOMUK)
341 include_directories(${NEPOMUK_INCLUDES})
342 target_link_libraries(kdenlive ${NEPOMUK_LIBRARIES})
347 add_definitions(-DUSE_QJSON)
348 include_directories(${QJSON_INCLUDE_DIR})
349 target_link_libraries(kdenlive ${QJSON_LIBRARIES})
353 include_directories(${LIBV4L2_INCLUDE_DIR})
354 target_link_libraries(kdenlive ${LIBV4L2_LIBRARY})
355 add_definitions(-DUSE_V4L)
359 add_definitions(-DUSE_JOGSHUTTLE)
360 target_link_libraries(kdenlive
363 endif(BUILD_JogShuttle)
365 install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR})
369 DESTINATION ${DATA_INSTALL_DIR}/kdenlive
371 install(FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR})
373 kdenlive_projectprofiles.knsrc
374 kdenlive_renderprofiles.knsrc
375 kdenlive_titles.knsrc
377 kdenlivetranscodingrc
378 DESTINATION ${CONFIG_INSTALL_DIR}
380 add_subdirectory(icons)
381 install(FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})