X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2FCMakeLists.txt;h=034d6c6ed79e4896453a52d05d2cc486f6f58dae;hp=561b46e7fdf0af874a2540bfd3108222de15e143;hb=HEAD;hpb=fe4b38e66592f11fdf4c4651863968983daecd2d diff --git a/src/qtui/CMakeLists.txt b/src/qtui/CMakeLists.txt index 561b46e7..0d6d2b9b 100644 --- a/src/qtui/CMakeLists.txt +++ b/src/qtui/CMakeLists.txt @@ -1,112 +1,194 @@ -# Builds the qtui module +quassel_add_module(QtUi EXPORT) -set(QT_DONT_USE_QTGUI 0) -set(QT_USE_QTNETWORK 1) -include(${QT_USE_FILE}) - -set(SOURCES +target_sources(${TARGET} PRIVATE aboutdlg.cpp + awaylogfilter.cpp + awaylogview.cpp bufferwidget.cpp channellistdlg.cpp + chatitem.cpp + chatline.cpp + chatlinemodel.cpp + chatlinemodelitem.cpp + chatmonitorfilter.cpp + chatmonitorview.cpp + chatscene.cpp + chatview.cpp + chatviewsearchbar.cpp + chatviewsearchcontroller.cpp + chatviewsettings.cpp + columnhandleitem.cpp coreconfigwizard.cpp coreconnectdlg.cpp - debugconsole.cpp + coreconnectionstatuswidget.cpp + coreinfodlg.cpp + coresessionwidget.cpp + debugbufferviewoverlay.cpp + debuglogdlg.cpp + debugmessagemodelfilter.cpp inputwidget.cpp - jumpkeyhandler.cpp + ircconnectionwizard.cpp + legacysystemtray.cpp + mainpage.cpp mainwin.cpp + 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 - topicbutton.cpp topicwidget.cpp - verticaldock.cpp) - -set(MOC_HDRS - aboutdlg.h - bufferwidget.h - channellistdlg.h - coreconfigwizard.h - coreconnectdlg.h - debugconsole.h - inputwidget.h - jumpkeyhandler.h - mainwin.h - nicklistwidget.h - qtui.h - settingsdlg.h - settingspagedlg.h - titlesetter.h - topicbutton.h - topicwidget.h - verticaldock.h) - -set(HEADERS - qtuisettings.h - qtuistyle.h) + verticaldock.cpp + webpreviewitem.cpp -if(SPUTDEV) - set(SOURCES ${SOURCES} chatitem.cpp chatline.cpp chatlinemodelitem.cpp - chatlinemodel.cpp chatscene.cpp chatview.cpp) - set(MOC_HDRS ${MOC_HDRS} chatlinemodel.h chatscene.h chatview.h) - set(HEADERS ${HEADERS} chatitem.h chatline.h chatlinemodelitem.h) -else(SPUTDEV) - set(SOURCES ${SOURCES} chatline-old.cpp chatwidget.cpp) - set(MOC_HDRS ${MOC_HDRS} chatline-old.h chatwidget.h) -endif(SPUTDEV) - -set(FORMS + # UI files aboutdlg.ui bufferviewwidget.ui bufferwidget.ui channellistdlg.ui - coreaccounteditdlg.ui + chatviewsearchbar.ui coreconfigwizardintropage.ui + coreconfigwizardauthenticationselectionpage.ui coreconfigwizardadminuserpage.ui coreconfigwizardstorageselectionpage.ui coreconfigwizardsyncpage.ui - coreconnectdlg.ui - debugconsole.ui + coreconnectauthdlg.ui + coreconnectionstatuswidget.ui + coreinfodlg.ui + coresessionwidget.ui + debugbufferviewoverlay.ui + debuglogdlg.ui inputwidget.ui - mainwin.ui + msgprocessorstatuswidget.ui nicklistwidget.ui + passwordchangedlg.ui + receivefiledlg.ui + resourcetreedlg.ui settingsdlg.ui settingspagedlg.ui - topicwidget.ui) + simplenetworkeditor.ui + 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) -foreach(FORM ${FORMS}) - set(FORMPATH ${FORMPATH} ui/${FORM}) -endforeach(FORM ${FORMS}) + target_sources(${TARGET} PRIVATE + dockmanagernotificationbackend.cpp + statusnotifieritem.cpp + statusnotifieritemdbus.cpp + ${DBUS_SOURCES} + ) +endif() -# 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}) +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() -qt4_wrap_cpp(MOC ${MOC_HDRS} ${SPHDR}) -qt4_wrap_ui(UI ${FORMPATH} ${SPFRM}) +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() -include_directories(${CMAKE_SOURCE_DIR}/src/common - ${CMAKE_SOURCE_DIR}/src/client - ${CMAKE_SOURCE_DIR}/src/qtui - ${CMAKE_SOURCE_DIR}/src/uisupport - ${CMAKE_CURRENT_BINARY_DIR}) +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() -add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${MOC} ${UI} ${HEADERS}) -add_dependencies(mod_qtui mod_common mod_client mod_uisupport) +if (WITH_OXYGEN_ICONS) + set_property(SOURCE qtui.cpp APPEND PROPERTY COMPILE_DEFINITIONS WITH_OXYGEN_ICONS) +endif()