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)
18 # This can be changed to support FreeBSD as soon as we move to a newer V4L2
20 check_include_files(linux/ioctl.h HAVE_LINUX_IOCTL_H)
21 if(HAVE_LINUX_IOCTL_H)
23 endif(HAVE_LINUX_IOCTL_H)
27 check_include_files(linux/input.h HAVE_LINUX_INPUT_H)
28 if(HAVE_LINUX_INPUT_H)
29 set(BUILD_JogShuttle TRUE)
30 endif(HAVE_LINUX_INPUT_H)
31 endif(WITH_JogShuttle)
33 macro_log_feature(QT_QTOPENGL_FOUND
35 "Qt bindings for the OpenGL library"
36 "http://qt.nokia.com/products/qt"
39 "QtOpenGL library and headers (most likely called libqt4-opengl and libqt4-opengl-dev)"
42 macro_log_feature(QT_QTSCRIPT_FOUND
44 "Qt module providing core scripting facilities"
45 "http://qt.nokia.com/products/qt"
48 "QtScript library (most likely called libqt4-script)"
52 macro_log_feature(SDL_FOUND
54 "Cross-platform multimedia library"
55 "http://www.libsdl.org"
60 macro_log_feature(Nepomuk_FOUND
62 "Support for the Nepomuk semantic desktop system"
63 "http://nepomuk.semanticdesktop.org"
66 macro_log_feature(QJSON_FOUND
68 "Qt-based library that maps JSON data to QVariant objects"
69 "http://qjson.sourceforge.net"
72 "Required to build the rotoscoping filter and for Freesound.org queries"
76 add_subdirectory(beziercurve)
77 add_subdirectory(colorcorrection)
78 add_subdirectory(commands)
80 add_subdirectory(projecttree)
81 add_subdirectory(utils)
82 add_subdirectory(databackup)
83 add_subdirectory(effectstack)
84 add_subdirectory(mimetypes)
85 add_subdirectory(onmonitoritems)
86 add_subdirectory(scopes)
87 add_subdirectory(simplekeyframes)
88 add_subdirectory(stopmotion)
91 add_subdirectory(onmonitoritems/rotoscoping)
92 add_subdirectory(rotoscoping)
99 list(APPEND kdenlive_SRCS
105 abstractgroupitem.cpp
108 choosecolorwidget.cpp
109 clipdurationdialog.cpp
115 colorpickerwidget.cpp
126 documentvalidator.cpp
127 doubleparameterwidget.cpp
130 dvdwizardchapters.cpp
135 effectslistwidget.cpp
138 encodingprofilesdialog.cpp
139 folderprojectitem.cpp
143 graphicsscenerectmove.cpp
148 kdenlivesettingsdialog.cpp
154 managecapturesdialog.cpp
158 monitoreditwidget.cpp
175 statusbarmessagelabel.cpp
182 tracksconfigdialog.cpp
185 transitionsettings.cpp
190 kde4_add_ui_files(kdenlive_UIS
191 widgets/addtrack_ui.ui
192 widgets/archivewidget_ui.ui
193 widgets/audiospectrum_ui.ui
194 widgets/backupdialog_ui.ui
195 widgets/bezierspline_ui.ui
196 widgets/boolval_ui.ui
197 widgets/clipdurationdialog_ui.ui
198 widgets/clipproperties_ui.ui
199 widgets/cliptranscode_ui.ui
200 widgets/collapsiblewidget_ui.ui
201 widgets/collapsiblegroup_ui.ui
202 widgets/clipstabilize_ui.ui
203 widgets/colorclip_ui.ui
204 widgets/colorplaneexport_ui.ui
205 widgets/configcapture_ui.ui
206 widgets/configenv_ui.ui
207 widgets/configjogshuttle_ui.ui
208 widgets/configmisc_ui.ui
209 widgets/configproject_ui.ui
210 widgets/configsdl_ui.ui
211 widgets/configtimeline_ui.ui
212 widgets/configtranscode_ui.ui
213 widgets/dvdwizardchapters_ui.ui
214 widgets/dvdwizardmenu_ui.ui
215 widgets/dvdwizardstatus_ui.ui
216 widgets/dvdwizardvob_ui.ui
217 widgets/effectlist_ui.ui
218 widgets/effectstack_ui.ui
219 widgets/effectstack2_ui.ui
220 widgets/freesound_ui.ui
221 widgets/geometryval_ui.ui
222 widgets/geometrywidget_ui.ui
223 widgets/histogram_ui.ui
224 widgets/keyframedialog_ui.ui
225 widgets/keyframeeditor_ui.ui
226 widgets/keyframewidget_ui.ui
227 widgets/listval_ui.ui
228 widgets/managecaptures_ui.ui
229 widgets/manageencodingprofile_ui.ui
230 widgets/markerdialog_ui.ui
231 widgets/missingclips_ui.ui
232 widgets/monitoreditwidget_ui.ui
233 widgets/profiledialog_ui.ui
234 widgets/projectsettings_ui.ui
235 widgets/recmonitor_ui.ui
236 widgets/renderwidget_ui.ui
237 widgets/rgbparade_ui.ui
238 widgets/saveprofile_ui.ui
239 widgets/slideshowclip_ui.ui
240 widgets/smconfig_ui.ui
241 widgets/spacerdialog_ui.ui
242 widgets/spectrogram_ui.ui
243 widgets/stopmotion_ui.ui
244 widgets/templateclip_ui.ui
245 widgets/timeline_ui.ui
246 widgets/timelinebuttons_ui.ui
247 widgets/titlewidget_ui.ui
248 widgets/trackheader_ui.ui
249 widgets/tracksconfigdialog_ui.ui
250 widgets/transitionsettings_ui.ui
251 widgets/unicodedialog_ui.ui
253 widgets/vectorscope_ui.ui
254 widgets/waveform_ui.ui
255 widgets/wipeval_ui.ui
256 widgets/wizardcapture_ui.ui
257 widgets/wizardcheck_ui.ui
258 widgets/wizardextra_ui.ui
259 widgets/wizardmltcheck_ui.ui
260 widgets/wizardstandard_ui.ui
261 widgets/keywordval_ui.ui
262 widgets/fontval_ui.ui
263 widgets/cutjobdialog_ui.ui
267 list(APPEND kdenlive_SRCS videoglwidget.cpp)
271 list(APPEND kdenlive_SRCS
276 endif(BUILD_JogShuttle)
278 kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc)
279 qt4_add_dbus_adaptor(kdenlive_SRCS
280 org.kdenlive.MainWindow.xml
284 qt4_add_resources(kdenlive_SRCS widgets/resources.qrc)
285 kde4_add_executable(kdenlive
290 # To compile kiss_fft.
291 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=c99")
293 # KDE definitions and include directories *must* always come first, Qt follows
294 # (to avoid breaking builds when KDE and/or Qt are installed to different
296 add_definitions(${KDE4_DEFINITIONS})
300 ${KDE4_INCLUDES} # Adds Qt include directories too.
301 ${LIBMLT_INCLUDE_DIR}
302 ${LIBMLTPLUS_INCLUDE_DIR}
305 # Adds Qt definitions and include directories, and sets QT_LIBRARIES according
306 # to the components requested in find_package().
307 include(${QT_USE_FILE})
309 if(${KDE_VERSION} VERSION_LESS 4.3.80)
310 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
311 else(${KDE_VERSION} VERSION_LESS 4.3.80)
312 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
313 endif(${KDE_VERSION} VERSION_LESS 4.3.80)
315 target_link_libraries(kdenlive
318 ${KDE4_KNEWSTUFF_LIBS}
319 ${KDE4_KNOTIFYCONFIG_LIBRARY}
324 ${LIBMLTPLUS_LIBRARY}
326 ${CMAKE_THREAD_LIBS_INIT}
330 include_directories(${X11_Xlib_INCLUDE_PATH})
331 target_link_libraries(kdenlive ${X11_LIBRARIES})
334 if(OPENGL_FOUND AND QT_QTOPENGL_FOUND)
335 add_definitions(-DUSE_OPENGL)
336 target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
337 endif(OPENGL_FOUND AND QT_QTOPENGL_FOUND)
340 target_link_libraries(kdenlive ${SDL_LIBRARY})
344 add_definitions(-DUSE_NEPOMUK)
345 include_directories(${NEPOMUK_INCLUDES})
346 target_link_libraries(kdenlive ${NEPOMUK_LIBRARIES})
350 add_definitions(-DUSE_QJSON)
351 include_directories(${QJSON_INCLUDE_DIR})
352 target_link_libraries(kdenlive ${QJSON_LIBRARIES})
356 add_definitions(-DUSE_V4L)
360 add_definitions(-DUSE_JOGSHUTTLE)
361 endif(BUILD_JogShuttle)
363 install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR})
367 DESTINATION ${DATA_INSTALL_DIR}/kdenlive
369 install(FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR})
371 kdenlive_projectprofiles.knsrc
372 kdenlive_renderprofiles.knsrc
373 kdenlive_titles.knsrc
375 kdenlivetranscodingrc
376 DESTINATION ${CONFIG_INSTALL_DIR}
378 kde4_install_icons(${ICON_INSTALL_DIR})
379 install(FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})