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 macro_log_feature(QJSON_FOUND
71 "Qt-based library that maps JSON data to QVariant objects"
72 "http://qjson.sourceforge.net"
75 "Required to build the rotoscoping filter and for Freesound.org queries"
79 add_subdirectory(beziercurve)
80 add_subdirectory(colorcorrection)
81 add_subdirectory(commands)
83 add_subdirectory(projecttree)
84 add_subdirectory(utils)
85 add_subdirectory(databackup)
86 add_subdirectory(effectstack)
87 add_subdirectory(mimetypes)
88 add_subdirectory(onmonitoritems)
89 add_subdirectory(scopes)
90 add_subdirectory(simplekeyframes)
91 add_subdirectory(stopmotion)
94 add_subdirectory(onmonitoritems/rotoscoping)
95 add_subdirectory(rotoscoping)
102 list(APPEND kdenlive_SRCS
108 abstractgroupitem.cpp
111 choosecolorwidget.cpp
112 clipdurationdialog.cpp
118 colorpickerwidget.cpp
129 documentvalidator.cpp
130 doubleparameterwidget.cpp
133 dvdwizardchapters.cpp
138 effectslistwidget.cpp
140 encodingprofilesdialog.cpp
141 folderprojectitem.cpp
145 graphicsscenerectmove.cpp
150 kdenlivesettingsdialog.cpp
156 managecapturesdialog.cpp
160 monitoreditwidget.cpp
177 statusbarmessagelabel.cpp
184 tracksconfigdialog.cpp
187 transitionsettings.cpp
192 kde4_add_ui_files(kdenlive_UIS
193 widgets/addtrack_ui.ui
194 widgets/archivewidget_ui.ui
195 widgets/audiospectrum_ui.ui
196 widgets/backupdialog_ui.ui
197 widgets/bezierspline_ui.ui
198 widgets/boolval_ui.ui
199 widgets/clipdurationdialog_ui.ui
200 widgets/clipproperties_ui.ui
201 widgets/cliptranscode_ui.ui
202 widgets/collapsiblewidget_ui.ui
203 widgets/clipstabilize_ui.ui
204 widgets/colorclip_ui.ui
205 widgets/colorplaneexport_ui.ui
206 widgets/configcapture_ui.ui
207 widgets/configenv_ui.ui
208 widgets/configjogshuttle_ui.ui
209 widgets/configmisc_ui.ui
210 widgets/configproject_ui.ui
211 widgets/configsdl_ui.ui
212 widgets/configtimeline_ui.ui
213 widgets/configtranscode_ui.ui
214 widgets/dvdwizardchapters_ui.ui
215 widgets/dvdwizardmenu_ui.ui
216 widgets/dvdwizardstatus_ui.ui
217 widgets/dvdwizardvob_ui.ui
218 widgets/effectlist_ui.ui
219 widgets/effectstack_ui.ui
220 widgets/effectstack2_ui.ui
221 widgets/freesound_ui.ui
222 widgets/geometryval_ui.ui
223 widgets/geometrywidget_ui.ui
224 widgets/histogram_ui.ui
225 widgets/keyframedialog_ui.ui
226 widgets/keyframeeditor_ui.ui
227 widgets/keyframewidget_ui.ui
228 widgets/listval_ui.ui
229 widgets/managecaptures_ui.ui
230 widgets/manageencodingprofile_ui.ui
231 widgets/markerdialog_ui.ui
232 widgets/missingclips_ui.ui
233 widgets/monitoreditwidget_ui.ui
234 widgets/profiledialog_ui.ui
235 widgets/projectsettings_ui.ui
236 widgets/recmonitor_ui.ui
237 widgets/renderwidget_ui.ui
238 widgets/rgbparade_ui.ui
239 widgets/saveprofile_ui.ui
240 widgets/slideshowclip_ui.ui
241 widgets/smconfig_ui.ui
242 widgets/spacerdialog_ui.ui
243 widgets/spectrogram_ui.ui
244 widgets/stopmotion_ui.ui
245 widgets/templateclip_ui.ui
246 widgets/timeline_ui.ui
247 widgets/timelinebuttons_ui.ui
248 widgets/titlewidget_ui.ui
249 widgets/trackheader_ui.ui
250 widgets/tracksconfigdialog_ui.ui
251 widgets/transitionsettings_ui.ui
252 widgets/unicodedialog_ui.ui
254 widgets/vectorscope_ui.ui
255 widgets/waveform_ui.ui
256 widgets/wipeval_ui.ui
257 widgets/wizardcapture_ui.ui
258 widgets/wizardcheck_ui.ui
259 widgets/wizardextra_ui.ui
260 widgets/wizardmltcheck_ui.ui
261 widgets/wizardstandard_ui.ui
262 widgets/keywordval_ui.ui
263 widgets/fontval_ui.ui
264 widgets/cutjobdialog_ui.ui
268 list(APPEND kdenlive_SRCS videoglwidget.cpp)
272 list(APPEND kdenlive_SRCS
277 endif(BUILD_JogShuttle)
279 kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc)
280 qt4_add_dbus_adaptor(kdenlive_SRCS
281 org.kdenlive.MainWindow.xml
285 qt4_add_resources(kdenlive_SRCS widgets/resources.qrc)
286 kde4_add_executable(kdenlive
291 # To compile kiss_fft.
292 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=c99")
294 # KDE definitions and include directories *must* always come first, Qt follows
295 # (to avoid breaking builds when KDE and/or Qt are installed to different
297 add_definitions(${KDE4_DEFINITIONS})
301 ${KDE4_INCLUDES} # Adds Qt include directories too.
302 ${LIBMLT_INCLUDE_DIR}
303 ${LIBMLTPLUS_INCLUDE_DIR}
307 # Adds Qt definitions and include directories, and sets QT_LIBRARIES according
308 # to the components requested in find_package().
309 include(${QT_USE_FILE})
311 if(${KDE_VERSION} VERSION_LESS 4.3.80)
312 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
313 else(${KDE_VERSION} VERSION_LESS 4.3.80)
314 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
315 endif(${KDE_VERSION} VERSION_LESS 4.3.80)
317 target_link_libraries(kdenlive
320 ${KDE4_KNEWSTUFF_LIBS}
321 ${KDE4_KNOTIFYCONFIG_LIBRARY}
326 ${LIBMLTPLUS_LIBRARY}
328 ${CMAKE_THREAD_LIBS_INIT}
332 include_directories(${X11_Xlib_INCLUDE_PATH})
333 target_link_libraries(kdenlive ${X11_LIBRARIES})
336 if(OPENGL_FOUND AND QT_QTOPENGL_FOUND)
337 add_definitions(-DUSE_OPENGL)
338 target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
339 endif(OPENGL_FOUND AND QT_QTOPENGL_FOUND)
342 target_link_libraries(kdenlive ${SDL_LIBRARY})
346 add_definitions(-DUSE_NEPOMUK)
347 include_directories(${NEPOMUK_INCLUDES})
348 target_link_libraries(kdenlive ${NEPOMUK_LIBRARIES})
352 add_definitions(-DUSE_QJSON)
353 include_directories(${QJSON_INCLUDE_DIR})
354 target_link_libraries(kdenlive ${QJSON_LIBRARIES})
358 include_directories(${LIBV4L2_INCLUDE_DIR})
359 target_link_libraries(kdenlive ${LIBV4L2_LIBRARY})
360 add_definitions(-DUSE_V4L)
364 add_definitions(-DUSE_JOGSHUTTLE)
365 endif(BUILD_JogShuttle)
367 install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR})
371 DESTINATION ${DATA_INSTALL_DIR}/kdenlive
373 install(FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR})
375 kdenlive_projectprofiles.knsrc
376 kdenlive_renderprofiles.knsrc
377 kdenlive_titles.knsrc
379 kdenlivetranscodingrc
380 DESTINATION ${CONFIG_INSTALL_DIR}
382 kde4_install_icons(${ICON_INSTALL_DIR})
383 install(FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})