]> git.sesse.net Git - kdenlive/blobdiff - src/CMakeLists.txt
*Allow users to choose between SDL and OpenGL for monitor display
[kdenlive] / src / CMakeLists.txt
index f095e0a78777909f1a6c70a27230bc80cffc6d59..5dbd65b1224e131617b02ca6f43dd869ad81442c 100644 (file)
@@ -1,23 +1,43 @@
-
 add_subdirectory( widgets )
 add_subdirectory( mimetypes )
 
-find_package(Nepomuk REQUIRED)
+macro_optional_find_package(Nepomuk)
 
-include_directories(
-    ${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 (APPLE)
+  find_package(OpenGL)
+  set(QT_USE_QTOPENGL TRUE)
+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}
-    ${LIBFFMPEG_INCLUDE_DIR}
-    ${FFMPEG_HEADER_PATH}
-    ${NEPOMUK_INCLUDES}
+    ${QDBUS_INCLUDE_DIRS}
+    ${CMAKE_SOURCE_DIR}
+    ${CMAKE_BINARY_DIR}
+
+    ${CMAKE_SOURCE_DIR}/src/widgets
+    ${CMAKE_SOURCE_DIR}/src/colorcorrection
 )
 
 LINK_LIBRARIES(
 ${LIBMLT_LIBRARY}
 ${LIBMLTPLUS_LIBRARY}
-${LIBFFMPEG_LIBRARY}
-${NEPOMUK_LIBRARIES}
+${optional_libs}
 )
 
 
@@ -30,20 +50,21 @@ kde4_add_ui_files(kdenlive_UI
   widgets/slideshowclip_ui.ui
   widgets/configmisc_ui.ui
   widgets/configenv_ui.ui
-  widgets/configdisplay_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/constval_ui.ui
   widgets/listval_ui.ui
   widgets/wipeval_ui.ui
   widgets/boolval_ui.ui
-  widgets/colorval_ui.ui
   widgets/titlewidget_ui.ui
+  widgets/unicodedialog_ui.ui
   widgets/timelinebuttons_ui.ui
   widgets/renderwidget_ui.ui
   widgets/saveprofile_ui.ui
@@ -58,9 +79,30 @@ kde4_add_ui_files(kdenlive_UI
   widgets/geometryval_ui.ui
   widgets/wizardstandard_ui.ui
   widgets/wizardextra_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/timecodedisplay_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
 )
-set(kdenlive_SRCS 
+
+set(kdenlive_SRCS
   addclipcommand.cpp
   main.cpp
   mainwindow.cpp
@@ -101,16 +143,15 @@ set(kdenlive_SRCS
   kdenlivesettingsdialog.cpp
   complexparameter.cpp
   titlewidget.cpp
+  unicodedialog.cpp
   graphicsscenerectmove.cpp
   effectslistwidget.cpp
   titledocument.cpp
   transition.cpp
-  renderjob.cpp
   renderwidget.cpp
   abstractclipitem.cpp
   transitionsettings.cpp
   recmonitor.cpp
-  jogshuttle.cpp
   addtransitioncommand.cpp
   edittransitioncommand.cpp
   addfoldercommand.cpp
@@ -122,7 +163,6 @@ set(kdenlive_SRCS
   guide.cpp
   editguidecommand.cpp
   statusbarmessagelabel.cpp
-  regiongrabber.cpp
   editkeyframecommand.cpp
   clipdurationdialog.cpp
   managecapturesdialog.cpp
@@ -131,24 +171,116 @@ set(kdenlive_SRCS
   wizard.cpp
   customtrackscene.cpp
   abstractgroupitem.cpp
+  keyframehelper.cpp
+  editclipcommand.cpp
+  insertspacecommand.cpp
+  spacerdialog.cpp
+  addtrackcommand.cpp
+  movegroupcommand.cpp
+  dvdwizardvob.cpp
+  dvdwizardmenu.cpp
+  dvdwizard.cpp
+  locktrackcommand.cpp
+  groupclipscommand.cpp
+  splitaudiocommand.cpp
+  changecliptypecommand.cpp
+  documentchecker.cpp
+  dvdwizardchapters.cpp
+  documentvalidator.cpp
+  cliptranscode.cpp
+  keyframeedit.cpp
+  positionedit.cpp
+  trackdialog.cpp
+  subprojectitem.cpp
+  folderprojectitem.cpp
+  addclipcutcommand.cpp
+  editclipcutcommand.cpp
+  KoSliderCombo.cpp
+  kis_cubic_curve.cpp
+  kis_curve_widget.cpp
+  timecodedisplay.cpp
+  tracksconfigdialog.cpp
+  configtrackscommand.cpp
+  abstractscopewidget.cpp
+  rebuildgroupcommand.cpp
+  histogram.cpp
+  rgbparade.cpp
+  vectorscope.cpp
+  waveform.cpp
+  colorplaneexport.cpp
+  colortools.cpp
+  colorcorrection/histogramgenerator.cpp
+  colorcorrection/rgbparadegenerator.cpp
+  colorcorrection/vectorscopegenerator.cpp
+  colorcorrection/waveformgenerator.cpp
+  razorgroupcommand.cpp
+  colorpickerwidget.cpp
+  choosecolorwidget.cpp
+  monitorscene.cpp
+  geometrywidget.cpp
+  doubleparameterwidget.cpp
+  audiosignal.cpp
 )
 
-kde4_add_kcfg_files(kdenlive_SRCS GENERATE_MOC kdenlivesettings.kcfgc )
 
+add_subdirectory( ${CMAKE_SOURCE_DIR}/src/colorcorrection )
+
+add_definitions( ${KDE4_DEFINITIONS} )
+
+if(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" 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)
+
+if (APPLE OR OPENGL_FOUND)
+  add_definitions(-DUSE_OPEN_GL)
+  set(kdenlive_SRCS videoglwidget.cpp ${kdenlive_SRCS})
+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)
 kde4_add_executable(kdenlive ${kdenlive_SRCS} ${kdenlive_UI})
 
-target_link_libraries(kdenlive 
+if (${KDE_VERSION} VERSION_LESS 4.3.80)
+  set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
+else (${KDE_VERSION} VERSION_LESS 4.3.80)
+  set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
+endif (${KDE_VERSION} VERSION_LESS 4.3.80)
+
+target_link_libraries(kdenlive
   ${KDE4_KDEUI_LIBS}
-  ${KDE4_KIO_LIBS} 
+  ${KDE4_KIO_LIBS}
+  ${KNEWSTUFF_LIBS}
   ${LIBMLTPLUS_LIBRARY}
   ${LIBMLT_LIBRARY}
-  ${NEPOMUK_LIBRARIES}
+  ${optional_libs}
+  ${KDE4_KNOTIFYCONFIG_LIBRARY}
+  ${KDE4_KROSSUI_LIBS}
 )
+
+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)
+  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 DESTINATION  ${DATA_INSTALL_DIR}/kdenlive )
-install (FILES kdenlivesettings.kcfg DESTINATION share/config.kcfg)
-install (FILES kdenlive.desktop DESTINATION share/applications/kde)
-install (FILES application-x-kdenlive.svgz video-mlt-playlist.svgz DESTINATION share/icons/oxygen/scalable/mimetypes)
+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} )