add_subdirectory(beziercurve) add_subdirectory(colorcorrection) add_subdirectory(kiss_fft) add_subdirectory(mimetypes) add_subdirectory(onmonitoritems) add_subdirectory(rotoscoping) add_subdirectory(widgets) add_subdirectory(databackup) add_subdirectory(commands) macro_optional_find_package(Nepomuk) macro_optional_find_package(QJSON) include_directories( ${KDE4_INCLUDE_DIR} ${KDE4_INCLUDE_DIR}/KDE ${QT_INCLUDES} ${LIBMLT_INCLUDE_DIR} ${LIBMLTPLUS_INCLUDE_DIR} ${QDBUS_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/src/audioscopes ${CMAKE_SOURCE_DIR}/src/beziercurve ${CMAKE_SOURCE_DIR}/src/colorcorrection ${CMAKE_SOURCE_DIR}/src/kiss_fft ${CMAKE_SOURCE_DIR}/src/onmonitoritems ${CMAKE_SOURCE_DIR}/src/onmonitoritems/rotoscoping ${CMAKE_SOURCE_DIR}/src/widgets ) if(Nepomuk_FOUND) include_directories(NEPOMUK_INCLUDES) set(optional_libs ${NEPOMUK_LIBRARIES}) add_definitions(-DNEPOMUK) endif(Nepomuk_FOUND) if(QJSON_FOUND) include_directories(QJSON_INCLUDE_DIR) set(optional_libs ${optional_libs} ${QJSON_LIBRARIES}) add_definitions(-DQJSON) else(QJSON_FOUND) message(STATUS "Install QJson to use the rotoscoping filter") endif(QJSON_FOUND) if(Q_WS_X11) include_directories(${X11_Xlib_INCLUDE_PATH}) endif(Q_WS_X11) if(APPLE) find_package(OpenGL) set(QT_USE_QTOPENGL TRUE) else(APPLE) macro_optional_find_package(OpenGL) endif(APPLE) link_libraries( ${LIBMLT_LIBRARY} ${LIBMLTPLUS_LIBRARY} ${optional_libs} ) kde4_add_ui_files(kdenlive_UI widgets/timeline_ui.ui widgets/recmonitor_ui.ui widgets/colorclip_ui.ui widgets/slideshowclip_ui.ui widgets/configmisc_ui.ui widgets/configenv_ui.ui widgets/configtimeline_ui.ui widgets/configsdl_ui.ui widgets/configcapture_ui.ui widgets/configtranscode_ui.ui widgets/configproject_ui.ui widgets/effectlist_ui.ui widgets/effectstack_ui.ui widgets/profiledialog_ui.ui widgets/projectsettings_ui.ui widgets/keyframewidget_ui.ui widgets/listval_ui.ui widgets/wipeval_ui.ui widgets/boolval_ui.ui widgets/titlewidget_ui.ui widgets/unicodedialog_ui.ui widgets/timelinebuttons_ui.ui widgets/renderwidget_ui.ui widgets/saveprofile_ui.ui widgets/transitionsettings_ui.ui widgets/configjogshuttle_ui.ui widgets/trackheader_ui.ui widgets/clipproperties_ui.ui widgets/markerdialog_ui.ui widgets/keyframedialog_ui.ui widgets/clipdurationdialog_ui.ui widgets/managecaptures_ui.ui widgets/geometryval_ui.ui widgets/wizardstandard_ui.ui widgets/wizardextra_ui.ui widgets/wizardcapture_ui.ui widgets/wizardcheck_ui.ui widgets/wizardmltcheck_ui.ui widgets/spacerdialog_ui.ui widgets/addtrack_ui.ui widgets/dvdwizardvob_ui.ui widgets/dvdwizardmenu_ui.ui widgets/dvdwizardstatus_ui.ui widgets/dvdwizardchapters_ui.ui widgets/missingclips_ui.ui widgets/cliptranscode_ui.ui widgets/templateclip_ui.ui widgets/keyframeeditor_ui.ui widgets/tracksconfigdialog_ui.ui widgets/urlval_ui.ui widgets/vectorscope_ui.ui widgets/colorplaneexport_ui.ui widgets/waveform_ui.ui widgets/rgbparade_ui.ui widgets/histogram_ui.ui widgets/geometrywidget_ui.ui widgets/stopmotion_ui.ui widgets/audiospectrum_ui.ui widgets/spectrogram_ui.ui widgets/smconfig_ui.ui widgets/bezierspline_ui.ui widgets/monitoreditwidget_ui.ui widgets/archivewidget_ui.ui widgets/manageencodingprofile_ui.ui widgets/backupdialog_ui.ui ) set(kdenlive_SRCS ${kdenlive_SRCS} main.cpp mainwindow.cpp customruler.cpp smallruler.cpp projectlist.cpp projectitem.cpp monitor.cpp gentime.cpp renderer.cpp kdenlivedoc.cpp projectlistview.cpp trackview.cpp docclipbase.cpp timecode.cpp monitormanager.cpp headertrack.cpp customtrackview.cpp clipitem.cpp kthumb.cpp clipmanager.cpp effectslist.cpp initeffects.cpp effectslistview.cpp effectstackview.cpp effectstackedit.cpp parameterplotter.cpp profilesdialog.cpp projectsettings.cpp kdenlivesettingsdialog.cpp complexparameter.cpp titlewidget.cpp unicodedialog.cpp graphicsscenerectmove.cpp effectslistwidget.cpp titledocument.cpp transition.cpp renderwidget.cpp abstractclipitem.cpp transitionsettings.cpp recmonitor.cpp clipproperties.cpp slideshowclip.cpp markerdialog.cpp guide.cpp statusbarmessagelabel.cpp clipdurationdialog.cpp managecapturesdialog.cpp geometryval.cpp wizard.cpp customtrackscene.cpp abstractgroupitem.cpp keyframehelper.cpp spacerdialog.cpp dvdwizardvob.cpp dvdwizardmenu.cpp dvdwizard.cpp documentchecker.cpp dvdwizardchapters.cpp documentvalidator.cpp cliptranscode.cpp keyframeedit.cpp positionedit.cpp trackdialog.cpp subprojectitem.cpp folderprojectitem.cpp KoSliderCombo.cpp kis_cubic_curve.cpp kis_curve_widget.cpp timecodedisplay.cpp tracksconfigdialog.cpp abstractscopewidget.cpp audioscopes/abstractaudioscopewidget.cpp audioscopes/audiospectrum.cpp audioscopes/spectrogram.cpp audioscopes/ffttools.cpp colorscopes/abstractgfxscopewidget.cpp colorscopes/histogram.cpp colorscopes/rgbparade.cpp colorscopes/vectorscope.cpp colorscopes/waveform.cpp colorplaneexport.cpp colortools.cpp colorcorrection/histogramgenerator.cpp colorcorrection/rgbparadegenerator.cpp colorcorrection/vectorscopegenerator.cpp colorcorrection/waveformgenerator.cpp colorpickerwidget.cpp choosecolorwidget.cpp monitorscene.cpp geometrywidget.cpp doubleparameterwidget.cpp audiosignal.cpp blackmagic/include/DeckLinkAPIDispatch.cpp stopmotion/stopmotion.cpp blackmagic/devices.cpp onmonitoritems/onmonitorrectitem.cpp onmonitoritems/onmonitorcornersitem.cpp cornerswidget.cpp kiss_fft/_kiss_fft_guts.h kiss_fft/kiss_fft.c kiss_fft/tools/kiss_fftr.c beziercurve/beziersplineeditor.cpp beziercurve/beziersplinewidget.cpp beziercurve/bpoint.cpp beziercurve/cubicbezierspline.cpp dragvalue.cpp monitoreditwidget.cpp simplekeyframes/simpletimelinewidget.cpp simplekeyframes/simplekeyframewidget.cpp noteswidget.cpp archivewidget.cpp mltdevicecapture.cpp abstractmonitor.cpp encodingprofilesdialog.cpp ) add_definitions(${KDE4_DEFINITIONS}) if(CMAKE_SYSTEM_NAME STREQUAL "GNU/kFreeBSD") add_definitions(-DQ_OS_KFREEBSD) endif(CMAKE_SYSTEM_NAME STREQUAL "GNU/kFreeBSD") if(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU/kFreeBSD" OR NO_JOGSHUTTLE) add_definitions(-DNO_JOGSHUTTLE) else(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU/kFreeBSD" OR NO_JOGSHUTTLE) set(kdenlive_SRCS jogshuttle.cpp jogaction.cpp jogshuttleconfig.cpp ${kdenlive_SRCS}) endif(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU/kFreeBSD" OR NO_JOGSHUTTLE) if(APPLE OR OPENGL_FOUND) add_definitions(-DUSE_OPEN_GL) set(kdenlive_SRCS videoglwidget.cpp ${kdenlive_SRCS}) endif(APPLE OR OPENGL_FOUND) if(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND NOT CMAKE_SYSTEM_NAME STREQUAL "GNU/kFreeBSD") set(kdenlive_SRCS ${kdenlive_SRCS} v4l/v4lcapture.cpp v4l/src.c ) endif(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND NOT CMAKE_SYSTEM_NAME STREQUAL "GNU/kFreeBSD") if(QJSON_FOUND) set(kdenlive_SRCS ${kdenlive_SRCS} onmonitoritems/rotoscoping/bpointitem.cpp onmonitoritems/rotoscoping/nearestpoint.cpp onmonitoritems/rotoscoping/splineitem.cpp rotoscoping/rotowidget.cpp ) endif(QJSON_FOUND) # Add libdl find_library(DL_LIB NAMES ${CMAKE_DL_LIBS}) message(STATUS "using dl library: ${DL_LIB}") kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc) qt4_add_dbus_adaptor(kdenlive_SRCS org.kdenlive.MainWindow.xml mainwindow.h MainWindow) qt4_add_resources(kdenlive_SRCS widgets/resources.qrc) kde4_add_executable(kdenlive ${kdenlive_SRCS} ${kdenlive_UI}) set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS}) target_link_libraries(kdenlive ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${KNEWSTUFF_LIBS} ${LIBMLTPLUS_LIBRARY} ${LIBMLT_LIBRARY} ${optional_libs} ${KDE4_KNOTIFYCONFIG_LIBRARY} ${KDE4_KROSSUI_LIBS} ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT} ${QT_QTSCRIPT_LIBRARY} ) if(Q_WS_X11) target_link_libraries(kdenlive ${X11_LIBRARIES}) endif(Q_WS_X11) if(APPLE) find_package(SDL REQUIRED) target_link_libraries(kdenlive ${SDL_LIBRARY}) target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY}) target_link_libraries(kdenlive ${OPENGL_LIBRARIES}) else(APPLE) add_definitions(-DHAVE_V4L2) if(OPENGL_FOUND) target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY}) target_link_libraries(kdenlive ${OPENGL_LIBRARIES}) endif(OPENGL_FOUND) endif(APPLE) install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR}) install(FILES kdenliveui.rc kdenlive.notifyrc DESTINATION ${DATA_INSTALL_DIR}/kdenlive) install(FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR}) install(FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR}) kde4_install_icons(${ICON_INSTALL_DIR}) install(FILES kdenlive_titles.knsrc kdenlive_wipes.knsrc kdenlive_renderprofiles.knsrc kdenlive_projectprofiles.knsrc kdenlivetranscodingrc DESTINATION ${CONFIG_INSTALL_DIR})