]> git.sesse.net Git - kdenlive/blobdiff - src/CMakeLists.txt
Add explicit link to pthread to fix build on Debian based systems (thanks to sunab).
[kdenlive] / src / CMakeLists.txt
index d246aacbddbb0bd9393fd3bff9199055ec674ca2..b5c1c0a9ba7b6172b7e2ff8b4e02c7955f8f3385 100644 (file)
@@ -1,51 +1,66 @@
-add_subdirectory( widgets )
-add_subdirectory( mimetypes )
+add_subdirectory(beziercurve)
+add_subdirectory(colorcorrection)
+add_subdirectory(kiss_fft)
+add_subdirectory(mimetypes)
+add_subdirectory(onmonitoritems)
+add_subdirectory(widgets)
 
 macro_optional_find_package(Nepomuk)
+include(FindQImageBlitz)
 
-if (Nepomuk_FOUND)
-    INCLUDE_DIRECTORIES(NEPOMUK_INCLUDES )
-    set( optional_libs ${NEPOMUK_LIBRARIES} )
-    add_definitions(-DNEPOMUK)
-endif (Nepomuk_FOUND)
+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/widgets
+)
+
+
+if(Nepomuk_FOUND)
+  include_directories(NEPOMUK_INCLUDES)
+  set(optional_libs ${NEPOMUK_LIBRARIES})
+  add_definitions(-DNEPOMUK)
+endif(Nepomuk_FOUND)
 
-if (Q_WS_X11)
-    include_directories (${X11_Xlib_INCLUDE_PATH} ) 
-endif (Q_WS_X11)
+if(QIMAGEBLITZ_FOUND)
+  include_directories(QIMAGEBLITZ_INCLUDES)
+  set(optional_libs ${optional_libs} ${QIMAGEBLITZ_LIBRARIES})
+  add_definitions(-DQIMAGEBLITZ)
+  message(STATUS "Found QImageBlitz: ${QIMAGEBLITZ_LIBRARIES}")
+else(QIMAGEBLITZ_FOUND)
+  message(STATUS "Install QImageBlitz devel package for improved stopmotion features")
+endif(QIMAGEBLITZ_FOUND)
 
-if (APPLE)
+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)
+else(APPLE)
   macro_optional_find_package(OpenGL)
-endif (APPLE)
-
-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}
+endif(APPLE)
 
-    ${CMAKE_SOURCE_DIR}/src/widgets
-    ${CMAKE_SOURCE_DIR}/src/colorcorrection
-    ${CMAKE_SOURCE_DIR}/src/onmonitoritems
-)
 
-LINK_LIBRARIES(
-${LIBMLT_LIBRARY}
-${LIBMLTPLUS_LIBRARY}
-${optional_libs}
+link_libraries(
+  ${LIBMLT_LIBRARY}
+  ${LIBMLTPLUS_LIBRARY}
+  ${optional_libs}
 )
 
-
-
 kde4_add_ui_files(kdenlive_UI
   widgets/timeline_ui.ui
-  widgets/monitor_ui.ui
   widgets/recmonitor_ui.ui
   widgets/colorclip_ui.ui
   widgets/slideshowclip_ui.ui
@@ -80,6 +95,7 @@ kde4_add_ui_files(kdenlive_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
@@ -102,9 +118,16 @@ kde4_add_ui_files(kdenlive_UI
   widgets/histogram_ui.ui
   widgets/geometrywidget_ui.ui
   widgets/stopmotion_ui.ui
+  widgets/monitorscenecontrolwidget_ui.ui
+  widgets/cornerswidget_ui.ui
+  widgets/audiospectrum_ui.ui
+  widgets/spectrogram_ui.ui
+  widgets/smconfig_ui.ui
+  widgets/bezierspline_ui.ui
 )
 
 set(kdenlive_SRCS
+  ${kdenlive_SRCS}
   addclipcommand.cpp
   main.cpp
   mainwindow.cpp
@@ -204,11 +227,16 @@ set(kdenlive_SRCS
   tracksconfigdialog.cpp
   configtrackscommand.cpp
   abstractscopewidget.cpp
+  audioscopes/abstractaudioscopewidget.cpp
+  audioscopes/audiospectrum.cpp
+  audioscopes/spectrogram.cpp
+  audioscopes/ffttools.cpp
   rebuildgroupcommand.cpp
-  histogram.cpp
-  rgbparade.cpp
-  vectorscope.cpp
-  waveform.cpp
+  colorscopes/abstractgfxscopewidget.cpp
+  colorscopes/histogram.cpp
+  colorscopes/rgbparade.cpp
+  colorscopes/vectorscope.cpp
+  colorscopes/waveform.cpp
   colorplaneexport.cpp
   colortools.cpp
   colorcorrection/histogramgenerator.cpp
@@ -223,38 +251,65 @@ set(kdenlive_SRCS
   doubleparameterwidget.cpp
   audiosignal.cpp
   blackmagic/include/DeckLinkAPIDispatch.cpp
+  stopmotion/stopmotion.cpp
+  stopmotion/capturehandler.cpp
   blackmagic/capture.cpp
   blackmagic/devices.cpp
-  stopmotion/stopmotion.cpp
+  onmonitoritems/abstractonmonitoritem.cpp
   onmonitoritems/onmonitorrectitem.cpp
+  onmonitoritems/onmonitorcornersitem.cpp
+  monitorscenecontrolwidget.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
 )
 
+add_definitions(${KDE4_DEFINITIONS})
 
-add_subdirectory( ${CMAKE_SOURCE_DIR}/src/colorcorrection )
-add_subdirectory( ${CMAKE_SOURCE_DIR}/src/onmonitoritems )
-
-add_definitions( ${KDE4_DEFINITIONS} )
-
-if(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR NO_JOGSHUTTLE)
+if(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR NO_JOGSHUTTLE)
   add_definitions(-DNO_JOGSHUTTLE)
-else(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR NO_JOGSHUTTLE)
-  set(kdenlive_SRCS jogshuttle.cpp ${kdenlive_SRCS})
-endif(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR NO_JOGSHUTTLE)
+else(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD" 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 NO_JOGSHUTTLE)
 
-if (APPLE OR OPENGL_FOUND)
+if(APPLE OR OPENGL_FOUND)
   add_definitions(-DUSE_OPEN_GL)
   set(kdenlive_SRCS videoglwidget.cpp ${kdenlive_SRCS})
-endif (APPLE OR OPENGL_FOUND)
+endif(APPLE OR OPENGL_FOUND)
 
-kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc )
-QT4_ADD_DBUS_ADAPTOR(kdenlive_SRCS org.kdenlive.MainWindow.xml mainwindow.h MainWindow)
+if(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+  set(kdenlive_SRCS
+    ${kdenlive_SRCS}
+    v4l/v4lcapture.cpp
+    v4l/src.c
+    v4l/src_v4l2.c
+    v4l/dec_bayer.c
+    v4l/dec_grey.c
+    v4l/dec_jpeg.c
+    v4l/dec_rgb.c
+    v4l/dec_s561.c
+    v4l/dec_yuv.c
+  )
+endif(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+
+# 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)
 kde4_add_executable(kdenlive ${kdenlive_SRCS} ${kdenlive_UI})
 
-if (${KDE_VERSION} VERSION_LESS 4.3.80)
+if(${KDE_VERSION} VERSION_LESS 4.3.80)
   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
-else (${KDE_VERSION} VERSION_LESS 4.3.80)
+else(${KDE_VERSION} VERSION_LESS 4.3.80)
   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
-endif (${KDE_VERSION} VERSION_LESS 4.3.80)
+endif(${KDE_VERSION} VERSION_LESS 4.3.80)
 
 target_link_libraries(kdenlive
   ${KDE4_KDEUI_LIBS}
@@ -265,30 +320,31 @@ target_link_libraries(kdenlive
   ${optional_libs}
   ${KDE4_KNOTIFYCONFIG_LIBRARY}
   ${KDE4_KROSSUI_LIBS}
+  ${CMAKE_DL_LIBS}
+  ${CMAKE_THREAD_LIBS_INIT}
 )
 
-if (Q_WS_X11)
+if(Q_WS_X11)
   target_link_libraries(kdenlive ${X11_LIBRARIES})
-endif (Q_WS_X11)
+endif(Q_WS_X11)
 
-if (APPLE)
+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)
-  if (OPENGL_FOUND)
-      target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY})
-      target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
-  endif (OPENGL_FOUND)
-endif (APPLE)
+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})
+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})
 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} )
-kde4_install_icons( ${ICON_INSTALL_DIR} )
-
-