cmake: Remove build system support for Qt4/KDE4
[quassel.git] / src / qtui / CMakeLists.txt
1 # Builds the qtui module
2
3 set(SOURCES
4     aboutdlg.cpp
5     awaylogfilter.cpp
6     awaylogview.cpp
7     bufferwidget.cpp
8     channellistdlg.cpp
9     chatitem.cpp
10     chatline.cpp
11     chatlinemodel.cpp
12     chatlinemodelitem.cpp
13     chatmonitorfilter.cpp
14     chatmonitorview.cpp
15     chatscene.cpp
16     chatview.cpp
17     chatviewsearchbar.cpp
18     chatviewsearchcontroller.cpp
19     chatviewsettings.cpp
20     columnhandleitem.cpp
21     coreconfigwizard.cpp
22     coreconnectdlg.cpp
23     coreconnectionstatuswidget.cpp
24     coreinfodlg.cpp
25     coresessionwidget.cpp
26     debugbufferviewoverlay.cpp
27     debugconsole.cpp
28     debuglogdlg.cpp
29     debugmessagemodelfilter.cpp
30     inputwidget.cpp
31     ircconnectionwizard.cpp
32     legacysystemtray.cpp
33     mainpage.cpp
34     mainwin.cpp
35     markerlineitem.cpp
36     msgprocessorstatuswidget.cpp
37     nicklistwidget.cpp
38     passwordchangedlg.cpp
39     qtui.cpp
40     qtuiapplication.cpp
41     qtuimessageprocessor.cpp
42     qtuisettings.cpp
43     qtuistyle.cpp
44     receivefiledlg.cpp
45     settingsdlg.cpp
46     settingspagedlg.cpp
47     simplenetworkeditor.cpp
48     systemtray.cpp
49     systrayanimationnotificationbackend.cpp
50     systraynotificationbackend.cpp
51     taskbarnotificationbackend.cpp
52     titlesetter.cpp
53     topicwidget.cpp
54     verticaldock.cpp
55     webpreviewitem.cpp
56 )
57
58 set(FORMS
59     aboutdlg.ui
60     bufferviewwidget.ui
61     bufferwidget.ui
62     channellistdlg.ui
63     chatviewsearchbar.ui
64     coreconfigwizardintropage.ui
65     coreconfigwizardauthenticationselectionpage.ui
66     coreconfigwizardadminuserpage.ui
67     coreconfigwizardstorageselectionpage.ui
68     coreconfigwizardsyncpage.ui
69     coreconnectauthdlg.ui
70     coreconnectionstatuswidget.ui
71     coreinfodlg.ui
72     coresessionwidget.ui
73     debugbufferviewoverlay.ui
74     debugconsole.ui
75     debuglogdlg.ui
76     inputwidget.ui
77     msgprocessorstatuswidget.ui
78     nicklistwidget.ui
79     passwordchangedlg.ui
80     receivefiledlg.ui
81     settingsdlg.ui
82     settingspagedlg.ui
83     simplenetworkeditor.ui
84     systrayanimationconfigwidget.ui
85     topicwidget.ui
86 )
87
88 set(LIBS )
89 set(QT_MODULES )
90
91 if (WITH_KF5)
92     list(APPEND SOURCES knotificationbackend.cpp)
93     list(APPEND LIBS KF5::ConfigWidgets KF5::Notifications KF5::NotifyConfig KF5::WidgetsAddons KF5::XmlGui)
94 endif()
95
96 if (LibsnoreQt5_FOUND)
97     add_definitions(-DHAVE_LIBSNORE)
98     list(APPEND SOURCES snorenotificationbackend.cpp)
99     list(APPEND FORMS   snorentificationconfigwidget.ui)
100     list(APPEND LIBS    Snore::Libsnore Snore::LibsnoreSettings)
101 endif()
102
103 if (Qt5Multimedia_FOUND)
104     add_definitions(-DHAVE_QTMULTIMEDIA)
105     list(APPEND QT_MODULES Multimedia)
106     set(SOURCES ${SOURCES} qtmultimedianotificationbackend.cpp)
107     set(FORMS ${FORMS}     qtmultimedianotificationconfigwidget.ui)
108 endif()
109
110 if (Phonon4Qt5_FOUND)
111     add_definitions(-DHAVE_PHONON)
112     include_directories(${PHONON_INCLUDES})
113     set(SOURCES ${SOURCES} phononnotificationbackend.cpp)
114     set(FORMS ${FORMS}     phononnotificationconfigwidget.ui)
115     list(APPEND LIBS ${PHONON_LIBS})  # PHONON_LIBRARIES only exists in config mode, it's not set by the legacy FindPhonon.cmake
116 endif()
117
118 if (Qt5DBus_FOUND)
119     add_definitions(-DHAVE_DBUS)
120     list(APPEND QT_MODULES DBus)
121     if (dbusmenu-qt5_FOUND)
122         add_definitions(-DHAVE_DBUSMENU)
123         include_directories(${dbusmenu-qt5_INCLUDE_DIRS})
124         list(APPEND LIBS dbusmenu-qt5)
125     endif()
126
127     list(APPEND SOURCES statusnotifieritem.cpp statusnotifieritemdbus.cpp dockmanagernotificationbackend.cpp)
128     qt5_add_dbus_interface(SOURCES ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
129     qt5_add_dbus_interface(SOURCES ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
130     qt5_add_dbus_adaptor  (SOURCES ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
131 endif()
132
133 if (HAVE_WEBKIT)
134     add_definitions(-DHAVE_WEBKIT)
135     list(APPEND QT_MODULES WebKit WebKitWidgets)
136 endif()
137
138 if (HAVE_WEBENGINE)
139     add_definitions(-DHAVE_WEBENGINE)
140     list(APPEND QT_MODULES WebEngine WebEngineWidgets)
141 endif()
142
143 if(HAVE_SSL)
144   set(SOURCES ${SOURCES} sslinfodlg.cpp)
145   set(FORMS ${FORMS} sslinfodlg.ui)
146 endif()
147
148 if (WITH_NOTIFICATION_CENTER)
149     add_definitions(-DHAVE_NOTIFICATION_CENTER)
150     list(APPEND SOURCES osxnotificationbackend.mm)
151     list(APPEND LIBS "/System/Library/Frameworks/Foundation.framework")
152 endif()
153
154 if (KF5Sonnet_FOUND)
155     add_definitions(-DHAVE_SONNET)
156     list(APPEND SOURCES settingspages/sonnetsettingspage.cpp)
157     list(APPEND LIBS KF5::SonnetUi)
158 endif()
159
160 foreach(FORM ${FORMS})
161   set(FORMPATH ${FORMPATH} ui/${FORM})
162 endforeach(FORM ${FORMS})
163
164 # handle settingspages
165 include(settingspages/settingspages.cmake)
166 foreach(SP ${SETTINGSPAGES})
167   set(SPSRC ${SPSRC} settingspages/${SP}settingspage.cpp)
168   set(SPFRM ${SPFRM} settingspages/${SP}settingspage.ui)
169 endforeach(SP ${SETTINGSPAGES})
170 foreach(SRC ${SP_SOURCES})
171   set(SPSRC ${SPSRC} settingspages/${SRC})
172 endforeach(SRC ${SP_SOURCES})
173 foreach(FRM ${SP_FORMS})
174   set(SPFRM ${SPFRM} settingspages/${FRM})
175 endforeach(FRM ${SP_FORMS})
176
177 include_directories(${CMAKE_SOURCE_DIR}/src/common
178                     ${CMAKE_SOURCE_DIR}/src/client
179                     ${CMAKE_SOURCE_DIR}/src/qtui
180                     ${CMAKE_SOURCE_DIR}/src/qtui/settingspages
181                     ${CMAKE_SOURCE_DIR}/src/uisupport
182 )
183
184 qt5_wrap_ui(UI ${FORMPATH} ${SPFRM})
185
186 add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${UI})
187 qt5_use_modules(mod_qtui Core Gui Network Widgets ${QT_MODULES})
188
189 target_link_libraries(mod_qtui mod_client mod_common mod_uisupport ${LIBS})