1 find_package(OpenGL REQUIRED)
2 find_package(Qt4 ${QT_MIN_VERSION} REQUIRED QtGui QtOpenGL QtScript QtSvg QtXml)
4 find_package(SDL REQUIRED)
6 macro_optional_find_package(Nepomuk)
7 macro_optional_find_package(QJSON)
9 option(WITH_V4L "Build capture support with Video4Linux" ON)
10 option(WITH_JogShuttle "Build Jog/Shuttle support" ON)
13 # This can be changed to support FreeBSD as soon as we move to a newer V4L2
15 check_include_files(linux/ioctl.h HAVE_LINUX_IOCTL_H)
16 if(HAVE_LINUX_IOCTL_H)
18 endif(HAVE_LINUX_IOCTL_H)
22 check_include_files(linux/input.h HAVE_LINUX_INPUT_H)
23 if(HAVE_LINUX_INPUT_H)
24 set(BUILD_JogShuttle TRUE)
25 endif(HAVE_LINUX_INPUT_H)
26 endif(WITH_JogShuttle)
28 macro_log_feature(QT_QTOPENGL_FOUND
30 "Qt bindings for the OpenGL library"
31 "http://qt.nokia.com/products/qt"
34 "QtOpenGL library and headers (most likely called libqt4-opengl and libqt4-opengl-dev)"
37 macro_log_feature(QT_QTSCRIPT_FOUND
39 "Qt module providing core scripting facilities"
40 "http://qt.nokia.com/products/qt"
43 "QtScript library (most likely called libqt4-script)"
47 macro_log_feature(SDL_FOUND
49 "Cross-platform multimedia library"
50 "http://www.libsdl.org"
55 macro_log_feature(Nepomuk_FOUND
57 "Support for the Nepomuk semantic desktop system"
58 "http://nepomuk.semanticdesktop.org"
61 macro_log_feature(QJSON_FOUND
63 "Qt-based library that maps JSON data to QVariant objects"
64 "http://qjson.sourceforge.net"
67 "Required to build the rotoscoping filter"
70 add_subdirectory(audioscopes)
71 add_subdirectory(beziercurve)
72 add_subdirectory(blackmagic)
73 add_subdirectory(colorcorrection)
74 add_subdirectory(colorscopes)
75 add_subdirectory(commands)
76 add_subdirectory(databackup)
77 add_subdirectory(kiss_fft)
78 add_subdirectory(mimetypes)
79 add_subdirectory(onmonitoritems)
80 add_subdirectory(simplekeyframes)
81 add_subdirectory(stopmotion)
84 add_subdirectory(onmonitoritems/rotoscoping)
85 add_subdirectory(rotoscoping)
92 list(APPEND kdenlive_SRCS
100 abstractscopewidget.cpp
103 choosecolorwidget.cpp
104 clipdurationdialog.cpp
109 colorpickerwidget.cpp
119 documentvalidator.cpp
120 doubleparameterwidget.cpp
123 dvdwizardchapters.cpp
128 effectslistwidget.cpp
131 encodingprofilesdialog.cpp
132 folderprojectitem.cpp
136 graphicsscenerectmove.cpp
141 kdenlivesettingsdialog.cpp
147 managecapturesdialog.cpp
151 monitoreditwidget.cpp
168 statusbarmessagelabel.cpp
175 tracksconfigdialog.cpp
178 transitionsettings.cpp
183 kde4_add_ui_files(kdenlive_UIS
184 widgets/addtrack_ui.ui
185 widgets/archivewidget_ui.ui
186 widgets/audiospectrum_ui.ui
187 widgets/backupdialog_ui.ui
188 widgets/bezierspline_ui.ui
189 widgets/boolval_ui.ui
190 widgets/clipdurationdialog_ui.ui
191 widgets/clipproperties_ui.ui
192 widgets/cliptranscode_ui.ui
193 widgets/colorclip_ui.ui
194 widgets/colorplaneexport_ui.ui
195 widgets/configcapture_ui.ui
196 widgets/configenv_ui.ui
197 widgets/configjogshuttle_ui.ui
198 widgets/configmisc_ui.ui
199 widgets/configproject_ui.ui
200 widgets/configsdl_ui.ui
201 widgets/configtimeline_ui.ui
202 widgets/configtranscode_ui.ui
203 widgets/dvdwizardchapters_ui.ui
204 widgets/dvdwizardmenu_ui.ui
205 widgets/dvdwizardstatus_ui.ui
206 widgets/dvdwizardvob_ui.ui
207 widgets/effectlist_ui.ui
208 widgets/effectstack_ui.ui
209 widgets/geometryval_ui.ui
210 widgets/geometrywidget_ui.ui
211 widgets/histogram_ui.ui
212 widgets/keyframedialog_ui.ui
213 widgets/keyframeeditor_ui.ui
214 widgets/keyframewidget_ui.ui
215 widgets/listval_ui.ui
216 widgets/managecaptures_ui.ui
217 widgets/manageencodingprofile_ui.ui
218 widgets/markerdialog_ui.ui
219 widgets/missingclips_ui.ui
220 widgets/monitoreditwidget_ui.ui
221 widgets/profiledialog_ui.ui
222 widgets/projectsettings_ui.ui
223 widgets/recmonitor_ui.ui
224 widgets/renderwidget_ui.ui
225 widgets/rgbparade_ui.ui
226 widgets/saveprofile_ui.ui
227 widgets/slideshowclip_ui.ui
228 widgets/smconfig_ui.ui
229 widgets/spacerdialog_ui.ui
230 widgets/spectrogram_ui.ui
231 widgets/stopmotion_ui.ui
232 widgets/templateclip_ui.ui
233 widgets/timeline_ui.ui
234 widgets/timelinebuttons_ui.ui
235 widgets/titlewidget_ui.ui
236 widgets/trackheader_ui.ui
237 widgets/tracksconfigdialog_ui.ui
238 widgets/transitionsettings_ui.ui
239 widgets/unicodedialog_ui.ui
241 widgets/vectorscope_ui.ui
242 widgets/waveform_ui.ui
243 widgets/wipeval_ui.ui
244 widgets/wizardcapture_ui.ui
245 widgets/wizardcheck_ui.ui
246 widgets/wizardextra_ui.ui
247 widgets/wizardmltcheck_ui.ui
248 widgets/wizardstandard_ui.ui
252 list(APPEND kdenlive_SRCS videoglwidget.cpp)
256 list(APPEND kdenlive_SRCS
261 endif(BUILD_JogShuttle)
263 kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc)
264 qt4_add_dbus_adaptor(kdenlive_SRCS
265 org.kdenlive.MainWindow.xml
269 qt4_add_resources(kdenlive_SRCS widgets/resources.qrc)
270 kde4_add_executable(kdenlive
275 # To compile kiss_fft.
276 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=c99")
278 # KDE definitions and include directories *must* always come first, Qt follows
279 # (to avoid breaking builds when KDE and/or Qt are installed to different
281 add_definitions(${KDE4_DEFINITIONS})
285 ${KDE4_INCLUDES} # Adds Qt include directories too.
286 ${LIBMLT_INCLUDE_DIR}
287 ${LIBMLTPLUS_INCLUDE_DIR}
290 # Adds Qt definitions and include directories, and sets QT_LIBRARIES according
291 # to the components requested in find_package().
292 include(${QT_USE_FILE})
294 if(${KDE_VERSION} VERSION_LESS 4.3.80)
295 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
296 else(${KDE_VERSION} VERSION_LESS 4.3.80)
297 set(KDE4_KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
298 endif(${KDE_VERSION} VERSION_LESS 4.3.80)
300 target_link_libraries(kdenlive
303 ${KDE4_KNEWSTUFF_LIBS}
304 ${KDE4_KNOTIFYCONFIG_LIBRARY}
308 ${LIBMLTPLUS_LIBRARY}
310 ${CMAKE_THREAD_LIBS_INIT}
314 include_directories(${X11_Xlib_INCLUDE_PATH})
315 target_link_libraries(kdenlive ${X11_LIBRARIES})
318 if(OPENGL_FOUND AND QT_QTOPENGL_FOUND)
319 add_definitions(-DUSE_OPENGL)
320 target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
321 endif(OPENGL_FOUND AND QT_QTOPENGL_FOUND)
324 target_link_libraries(kdenlive ${SDL_LIBRARY})
328 add_definitions(-DUSE_NEPOMUK)
329 include_directories(${NEPOMUK_INCLUDES})
330 target_link_libraries(kdenlive ${NEPOMUK_LIBRARIES})
334 add_definitions(-DUSE_QJSON)
335 include_directories(${QJSON_INCLUDE_DIR})
336 target_link_libraries(kdenlive ${QJSON_LIBRARIES})
340 add_definitions(-DUSE_V4L)
344 add_definitions(-DUSE_JOGSHUTTLE)
345 endif(BUILD_JogShuttle)
347 install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR})
351 DESTINATION ${DATA_INSTALL_DIR}/kdenlive
353 install(FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR})
355 kdenlive_projectprofiles.knsrc
356 kdenlive_renderprofiles.knsrc
357 kdenlive_titles.knsrc
359 kdenlivetranscodingrc
360 DESTINATION ${CONFIG_INSTALL_DIR}
362 kde4_install_icons(${ICON_INSTALL_DIR})
363 install(FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})