Properly find WebKit for Qt5
[quassel.git] / src / qtui / CMakeLists.txt
index 253268e..86ec615 100644 (file)
@@ -1,12 +1,9 @@
 # Builds the qtui module
 
-set(QT_DONT_USE_QTGUI 0)
-set(QT_USE_QTNETWORK 1)
-set(QT_USE_QTDBUS 1)
-include(${QT_USE_FILE})
-
 set(SOURCES
     aboutdlg.cpp
+    awaylogfilter.cpp
+    awaylogview.cpp
     bufferwidget.cpp
     channellistdlg.cpp
     chatitem.cpp
@@ -23,11 +20,18 @@ set(SOURCES
     columnhandleitem.cpp
     coreconfigwizard.cpp
     coreconnectdlg.cpp
+    coreconnectionstatuswidget.cpp
     coreinfodlg.cpp
+    debugbufferviewoverlay.cpp
     debugconsole.cpp
+    debuglogwidget.cpp
+    debugmessagemodelfilter.cpp
     inputwidget.cpp
-    jumpkeyhandler.cpp
+    ircconnectionwizard.cpp
+    legacysystemtray.cpp
+    mainpage.cpp
     mainwin.cpp
+    markerlineitem.cpp
     msgprocessorstatuswidget.cpp
     nicklistwidget.cpp
     qtui.cpp
@@ -35,52 +39,18 @@ set(SOURCES
     qtuimessageprocessor.cpp
     qtuisettings.cpp
     qtuistyle.cpp
-    sessionsettings.cpp
+    receivefiledlg.cpp
     settingsdlg.cpp
     settingspagedlg.cpp
+    simplenetworkeditor.cpp
+    systemtray.cpp
+    systraynotificationbackend.cpp
+    taskbarnotificationbackend.cpp
     titlesetter.cpp
-    topiclabel.cpp
     topicwidget.cpp
-    verticaldock.cpp)
-
-set(MOC_HDRS
-    aboutdlg.h
-    bufferwidget.h
-    channellistdlg.h
-    chatlinemodel.h
-    chatmonitorfilter.h
-    chatmonitorview.h
-    chatscene.h
-    chatview.h
-    chatviewsearchbar.h
-    chatviewsearchcontroller.h
-    columnhandleitem.h
-    coreconfigwizard.h
-    coreconnectdlg.h
-    coreinfodlg.h
-    debugconsole.h
-    inputwidget.h
-    jumpkeyhandler.h
-    mainwin.h
-    msgprocessorstatuswidget.h
-    nicklistwidget.h
-    qtui.h
-    qtuiapplication.h
-    qtuimessageprocessor.h
-    settingsdlg.h
-    settingspagedlg.h
-    titlesetter.h
-    topiclabel.h
-    topicwidget.h
-    verticaldock.h)
-
-set(HEADERS
-    chatitem.h
-    chatline.h
-    chatlinemodelitem.h
-    chatviewsettings.h
-    qtuisettings.h
-    qtuistyle.h)
+    verticaldock.cpp
+    webpreviewitem.cpp
+)
 
 set(FORMS
     aboutdlg.ui
@@ -88,56 +58,135 @@ set(FORMS
     bufferwidget.ui
     channellistdlg.ui
     chatviewsearchbar.ui
-    coreaccounteditdlg.ui
     coreconfigwizardintropage.ui
     coreconfigwizardadminuserpage.ui
     coreconfigwizardstorageselectionpage.ui
     coreconfigwizardsyncpage.ui
-    coreconnectdlg.ui
+    coreconnectauthdlg.ui
+    coreconnectionstatuswidget.ui
     coreinfodlg.ui
+    debugbufferviewoverlay.ui
     debugconsole.ui
+    debuglogwidget.ui
     inputwidget.ui
-    mainwin.ui
     msgprocessorstatuswidget.ui
     nicklistwidget.ui
     settingsdlg.ui
     settingspagedlg.ui
-    topicwidget.ui)
+    simplenetworkeditor.ui
+    receivefiledlg.ui
+    topicwidget.ui
+)
+
+set(LIBS )
+set(QT_MODULES )
+
+if (KDE4_FOUND)
+    add_definitions(-DHAVE_KDE ${KDE4_DEFINITIONS})
+    include_directories(${KDE4_INCLUDES})
+    list(APPEND SOURCES knotificationbackend.cpp)
+    list(APPEND LIBS ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBRARY} ${KDE4_KNOTIFYCONFIG_LIBRARY})
+endif()
+
+if (LIBSNORE_FOUND)
+    add_definitions(-DHAVE_SNORENOTIFY)
+    include_directories(${LIBSNORE_INCLUDE_DIRS})
+    list(APPEND SOURCES snorenotificationbackend.cpp)
+    list(APPEND FORMS   snorentificationconfigwidget.ui)
+    list(APPEND LIBS ${LIBSNORE_LIBRARIES})
+endif()
+
+if (PHONON_FOUND OR Phonon4Qt5_FOUND)
+    add_definitions(-DHAVE_PHONON)
+    include_directories(${PHONON_INCLUDES})
+    set(SOURCES ${SOURCES} phononnotificationbackend.cpp)
+    set(FORMS ${FORMS}     phononnotificationconfigwidget.ui)
+    list(APPEND LIBS ${PHONON_LIBS})  # PHONON_LIBRARIES only exists in config mode, it's not set by the legacy FindPhonon.cmake
+endif()
+
+if (QT_QTDBUS_FOUND OR Qt5DBus_FOUND)
+    add_definitions(-DHAVE_DBUS)
+    list(APPEND QT_MODULES DBus)
+    if (dbusmenu-qt_FOUND OR dbusmenu-qt5_FOUND)
+        add_definitions(-DHAVE_DBUSMENU)
+        include_directories(${dbusmenu-qt_INCLUDE_DIRS} ${dbusmenu-qt5_INCLUDE_DIRS})
+        if (dbusmenu-qt_FOUND)
+            list(APPEND LIBS dbusmenu-qt)
+        else()
+            list(APPEND LIBS dbusmenu-qt5)
+        endif()
+    endif()
+
+    list(APPEND SOURCES statusnotifieritem.cpp statusnotifieritemdbus.cpp dockmanagernotificationbackend.cpp)
+    qt_add_dbus_interface(SOURCES ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
+    qt_add_dbus_interface(SOURCES ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
+    qt_add_dbus_adaptor  (SOURCES ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
+endif()
+
+if (QT_QTWEBKIT_FOUND OR Qt5WebKitWidgets_FOUND)
+    add_definitions(-DHAVE_WEBKIT)
+    list(APPEND QT_MODULES WebKit XmlPatterns)
+    if (USE_QT5)
+        list(APPEND QT_MODULES WebKitWidgets)
+    endif()
+endif()
+
+if(HAVE_SSL)
+  set(SOURCES ${SOURCES} sslinfodlg.cpp)
+  set(FORMS ${FORMS} sslinfodlg.ui)
+endif(HAVE_SSL)
+
+if (INDICATEQT_FOUND)
+    add_definitions(-DHAVE_INDICATEQT)
+    include_directories(${INDICATEQT_INCLUDE_DIRS})
+    list(APPEND SOURCES indicatornotificationbackend.cpp)
+    list(APPEND FORMS   indicatornotificationconfigwidget.ui)
+    list(APPEND LIBS ${INDICATEQT_LIBRARIES})
+endif()
+
+if (WITH_NOTIFICATION_CENTER)
+    add_definitions(-DHAVE_NOTIFICATION_CENTER)
+    list(APPEND SOURCES osxnotificationbackend.mm)
+    list(APPEND LIBS "/System/Library/Frameworks/Foundation.framework")
+endif()
 
 foreach(FORM ${FORMS})
   set(FORMPATH ${FORMPATH} ui/${FORM})
 endforeach(FORM ${FORMS})
 
 # handle settingspages
-include(settingspages/settingspages.inc)
+include(settingspages/settingspages.cmake)
 foreach(SP ${SETTINGSPAGES})
   set(SPSRC ${SPSRC} settingspages/${SP}settingspage.cpp)
-  set(SPHDR ${SPHDR} settingspages/${SP}settingspage.h)
   set(SPFRM ${SPFRM} settingspages/${SP}settingspage.ui)
 endforeach(SP ${SETTINGSPAGES})
 foreach(SRC ${SP_SOURCES})
   set(SPSRC ${SPSRC} settingspages/${SRC})
 endforeach(SRC ${SP_SOURCES})
-foreach(HDR ${SP_HEADERS})
-  set(SPHDR ${SPHDR} settingspages/${HDR})
-endforeach(HDR ${SP_HEADERS})
 foreach(FRM ${SP_FORMS})
   set(SPFRM ${SPFRM} settingspages/${FRM})
 endforeach(FRM ${SP_FORMS})
 
-
-qt4_wrap_cpp(MOC ${MOC_HDRS} ${SPHDR})
-qt4_wrap_ui(UI ${FORMPATH} ${SPFRM})
-
-IF(HAVE_DBUS)
-  qt4_add_dbus_interface(DBUS ../../interfaces/org.freedesktop.Notifications.xml desktopnotifications)
-ENDIF(HAVE_DBUS)
-
 include_directories(${CMAKE_SOURCE_DIR}/src/common
                     ${CMAKE_SOURCE_DIR}/src/client
                     ${CMAKE_SOURCE_DIR}/src/qtui
+                    ${CMAKE_SOURCE_DIR}/src/qtui/settingspages
                     ${CMAKE_SOURCE_DIR}/src/uisupport
-                    ${CMAKE_CURRENT_BINARY_DIR})
 
-add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${MOC} ${DBUS} ${UI} ${HEADERS})
+)
+
+qt_wrap_ui(UI ${FORMPATH} ${SPFRM})
+
+if (USE_QT5)
+    list(APPEND QT_MODULES Widgets)
+endif()
+
+
+add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${UI})
+qt_use_modules(mod_qtui Core Gui Network ${QT_MODULES})
+
+if (LIBS)
+    target_link_libraries(mod_qtui ${LIBS})
+endif()
+
 add_dependencies(mod_qtui mod_common mod_client mod_uisupport)