ssl: Require SSL support in Qt
[quassel.git] / src / qtui / CMakeLists.txt
index 9a0b120..0d6d2b9 100644 (file)
@@ -1,25 +1,6 @@
-# Builds the qtui module
+quassel_add_module(QtUi EXPORT)
 
-set(QT_DONT_USE_QTGUI 0)
-set(QT_USE_QTNETWORK 1)
-if(HAVE_DBUS)
-  set(QT_USE_QTDBUS 1)
-endif(HAVE_DBUS)
-if(HAVE_WEBKIT)
-  set(QT_USE_QTWEBKIT 1)
-  set(QT_USE_XMLPATTERNS 1)
-endif(HAVE_WEBKIT)
-include(${QT_USE_FILE})
-
-if (QCA2_FOUND)
-  include_directories(${QCA2_INCLUDE_DIR})
-endif (QCA2_FOUND)
-
-if(INDICATEQT_FOUND)
-  include_directories(${INDICATEQT_INCLUDE_DIRS})
-endif(INDICATEQT_FOUND)
-
-set(SOURCES
+target_sources(${TARGET} PRIVATE
     aboutdlg.cpp
     awaylogfilter.cpp
     awaylogview.cpp
@@ -41,9 +22,9 @@ set(SOURCES
     coreconnectdlg.cpp
     coreconnectionstatuswidget.cpp
     coreinfodlg.cpp
+    coresessionwidget.cpp
     debugbufferviewoverlay.cpp
-    debugconsole.cpp
-    debuglogwidget.cpp
+    debuglogdlg.cpp
     debugmessagemodelfilter.cpp
     inputwidget.cpp
     ircconnectionwizard.cpp
@@ -53,161 +34,161 @@ set(SOURCES
     markerlineitem.cpp
     msgprocessorstatuswidget.cpp
     nicklistwidget.cpp
+    passwordchangedlg.cpp
     qtui.cpp
     qtuiapplication.cpp
     qtuimessageprocessor.cpp
     qtuisettings.cpp
     qtuistyle.cpp
+    receivefiledlg.cpp
+    resourcetreedlg.cpp
     settingsdlg.cpp
     settingspagedlg.cpp
     simplenetworkeditor.cpp
+    sslinfodlg.cpp
     systemtray.cpp
+    systrayanimationnotificationbackend.cpp
     systraynotificationbackend.cpp
     taskbarnotificationbackend.cpp
     titlesetter.cpp
     topicwidget.cpp
     verticaldock.cpp
-    webpreviewitem.cpp)
-
-set(MOC_HDRS
-    aboutdlg.h
-    awaylogfilter.h
-    awaylogview.h
-    bufferwidget.h
-    channellistdlg.h
-    chatitem.h
-    chatlinemodel.h
-    chatmonitorfilter.h
-    chatmonitorview.h
-    chatscene.h
-    chatview.h
-    chatviewsearchbar.h
-    chatviewsearchcontroller.h
-    columnhandleitem.h
-    coreconfigwizard.h
-    coreconnectdlg.h
-    coreconnectionstatuswidget.h
-    coreinfodlg.h
-    debugbufferviewoverlay.h
-    debugconsole.h
-    debuglogwidget.h
-    debugmessagemodelfilter.h
-    inputwidget.h
-    ircconnectionwizard.h
-    legacysystemtray.h
-    mainpage.h
-    mainwin.h
-    markerlineitem.h
-    msgprocessorstatuswidget.h
-    nicklistwidget.h
-    qtui.h
-    qtuiapplication.h
-    qtuimessageprocessor.h
-    qtuistyle.h
-    settingsdlg.h
-    settingspagedlg.h
-    simplenetworkeditor.h
-    systemtray.h
-    systraynotificationbackend.h
-    taskbarnotificationbackend.h
-    titlesetter.h
-    topicwidget.h
-    verticaldock.h)
+    webpreviewitem.cpp
 
-set(HEADERS
-    chatline.h
-    chatlinemodelitem.h
-    chatviewsettings.h
-    qtuisettings.h
-    webpreviewitem.h)
-
-set(FORMS
+    # UI files
     aboutdlg.ui
     bufferviewwidget.ui
     bufferwidget.ui
     channellistdlg.ui
     chatviewsearchbar.ui
     coreconfigwizardintropage.ui
+    coreconfigwizardauthenticationselectionpage.ui
     coreconfigwizardadminuserpage.ui
     coreconfigwizardstorageselectionpage.ui
     coreconfigwizardsyncpage.ui
     coreconnectauthdlg.ui
     coreconnectionstatuswidget.ui
     coreinfodlg.ui
+    coresessionwidget.ui
     debugbufferviewoverlay.ui
-    debugconsole.ui
-    debuglogwidget.ui
+    debuglogdlg.ui
     inputwidget.ui
     msgprocessorstatuswidget.ui
     nicklistwidget.ui
+    passwordchangedlg.ui
+    receivefiledlg.ui
+    resourcetreedlg.ui
     settingsdlg.ui
     settingspagedlg.ui
     simplenetworkeditor.ui
-    topicwidget.ui)
-
-if(HAVE_KDE)
-  set(SOURCES ${SOURCES} knotificationbackend.cpp)
-  set(MOC_HDRS ${MOC_HDRS} knotificationbackend.h)
-else(HAVE_KDE)
-  if(HAVE_PHONON)
-    set(SOURCES ${SOURCES} phononnotificationbackend.cpp)
-    set(MOC_HDRS ${MOC_HDRS} phononnotificationbackend.h)
-    set(FORMS ${FORMS} phononnotificationconfigwidget.ui)
-    include_directories(${PHONON_INCLUDES})
-  endif(HAVE_PHONON)
-endif(HAVE_KDE)
-
-if(HAVE_DBUS)
-  set(SOURCES ${SOURCES} statusnotifieritem.cpp statusnotifieritemdbus.cpp)
-  set(MOC_HDRS ${MOC_HDRS} statusnotifieritem.h statusnotifieritemdbus.h)
-  set(FORMS ${FORMS})
-  qt4_add_dbus_interface(DBUS ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
-  qt4_add_dbus_interface(DBUS ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
-  qt4_add_dbus_adaptor(DBUS ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)  
-endif(HAVE_DBUS)
-
-if(HAVE_SSL)
-  set(SOURCES ${SOURCES} sslinfodlg.cpp)
-  set(MOC_HDRS ${MOC_HDRS} sslinfodlg.h)
-  set(FORMS ${FORMS} sslinfodlg.ui)
-endif(HAVE_SSL)
-
-if(INDICATEQT_FOUND)
-  set(SOURCES ${SOURCES} indicatornotificationbackend.cpp)
-  set(MOC_HDRS ${MOC_HDRS} indicatornotificationbackend.h)
-  set(FORMS ${FORMS} indicatornotificationconfigwidget.ui)
-endif(INDICATEQT_FOUND)
-
-foreach(FORM ${FORMS})
-  set(FORMPATH ${FORMPATH} ui/${FORM})
-endforeach(FORM ${FORMS})
-
-# handle settingspages
-include(settingspages/settingspages.inc)
-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})
-
-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})
-add_dependencies(mod_qtui mod_common mod_client mod_uisupport)
+    sslinfodlg.ui
+    systrayanimationconfigwidget.ui
+    topicwidget.ui
+)
+
+# Handle settingspages
+target_include_directories(${TARGET} PRIVATE settingspages)
+include(settingspages/settingspages.cmake)
+foreach(page ${SETTINGSPAGES})
+    target_sources(${TARGET} PRIVATE
+        settingspages/${page}settingspage.cpp
+        settingspages/${page}settingspage.ui
+    )
+endforeach()
+foreach(src ${SP_SOURCES})
+    target_sources(${TARGET} PRIVATE settingspages/${src})
+endforeach()
+foreach(form ${SP_FORMS})
+    target_sources(${TARGET} PRIVATE settingspages/${form})
+endforeach()
+
+target_link_libraries(${TARGET}
+    PUBLIC
+        Qt5::Core
+        Qt5::Gui
+        Qt5::Network
+        Qt5::Widgets
+        Quassel::UiSupport
+        Quassel::Client
+        Quassel::Common
+)
+
+if (WITH_KDE)
+    target_sources(${TARGET} PRIVATE knotificationbackend.cpp)
+    target_link_libraries(${TARGET} PUBLIC
+        KF5::ConfigWidgets
+        KF5::Notifications
+        KF5::NotifyConfig
+        KF5::WidgetsAddons
+        KF5::XmlGui
+    )
+endif()
+
+if (KF5Sonnet_FOUND)
+    target_compile_definitions(${TARGET} PRIVATE -DHAVE_SONNET)
+    target_sources(${TARGET} PRIVATE settingspages/sonnetsettingspage.cpp)
+    target_link_libraries(${TARGET} PRIVATE KF5::SonnetUi)
+endif()
+
+if (Qt5Multimedia_FOUND)
+    target_compile_definitions(${TARGET} PRIVATE -DHAVE_QTMULTIMEDIA)
+    target_sources(${TARGET} PRIVATE
+        qtmultimedianotificationbackend.cpp
+        qtmultimedianotificationconfigwidget.ui
+    )
+    target_link_libraries(${TARGET} PRIVATE Qt5::Multimedia)
+endif()
+
+if (Qt5DBus_FOUND)
+    target_compile_definitions(${TARGET} PRIVATE -DHAVE_DBUS)
+    target_link_libraries(${TARGET} PRIVATE Qt5::DBus)
+    if (dbusmenu-qt5_FOUND)
+        target_compile_definitions(${TARGET} PRIVATE -DHAVE_DBUSMENU)
+        target_link_libraries(${TARGET} PRIVATE dbusmenu-qt5)
+    endif()
+
+    qt5_add_dbus_interface(DBUS_SOURCES ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
+    qt5_add_dbus_interface(DBUS_SOURCES ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
+    qt5_add_dbus_adaptor  (DBUS_SOURCES ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
+
+    target_sources(${TARGET} PRIVATE
+        dockmanagernotificationbackend.cpp
+        statusnotifieritem.cpp
+        statusnotifieritemdbus.cpp
+        ${DBUS_SOURCES}
+    )
+endif()
+
+if (HAVE_WEBKIT)
+    target_compile_definitions(${TARGET} PRIVATE -DHAVE_WEBKIT)
+    target_link_libraries(${TARGET} PRIVATE
+        Qt5::WebKit
+        Qt5::WebKitWidgets
+    )
+endif()
+
+if (HAVE_WEBENGINE)
+    target_compile_definitions(${TARGET} PRIVATE -DHAVE_WEBENGINE)
+    target_link_libraries(${TARGET} PRIVATE
+        Qt5::WebEngine
+        Qt5::WebEngineWidgets)
+endif()
+
+if (LibsnoreQt5_FOUND)
+    target_compile_definitions(${TARGET} PRIVATE -DHAVE_LIBSNORE)
+    target_sources(${TARGET} PRIVATE
+        snorenotificationbackend.cpp
+        snorentificationconfigwidget.ui
+    )
+    target_link_libraries(${TARGET} PRIVATE Snore::Libsnore Snore::LibsnoreSettings)
+endif()
+
+if (WITH_NOTIFICATION_CENTER)
+    target_compile_definitions(${TARGET} PRIVATE -DHAVE_NOTIFICATION_CENTER)
+    target_sources(${TARGET} PRIVATE osxnotificationbackend.mm)
+    target_link_libraries(${TARGET} PRIVATE "/System/Library/Frameworks/Foundation.framework")
+endif()
+
+if (WITH_OXYGEN_ICONS)
+    set_property(SOURCE qtui.cpp APPEND PROPERTY COMPILE_DEFINITIONS WITH_OXYGEN_ICONS)
+endif()