518ceacbe1a40848c28d4b92da3b5e49d6a090f2
[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     debuglogwidget.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     systraynotificationbackend.cpp
50     taskbarnotificationbackend.cpp
51     titlesetter.cpp
52     topicwidget.cpp
53     verticaldock.cpp
54     webpreviewitem.cpp
55 )
56
57 set(FORMS
58     aboutdlg.ui
59     bufferviewwidget.ui
60     bufferwidget.ui
61     channellistdlg.ui
62     chatviewsearchbar.ui
63     coreconfigwizardintropage.ui
64     coreconfigwizardauthenticationselectionpage.ui
65     coreconfigwizardadminuserpage.ui
66     coreconfigwizardstorageselectionpage.ui
67     coreconfigwizardsyncpage.ui
68     coreconnectauthdlg.ui
69     coreconnectionstatuswidget.ui
70     coreinfodlg.ui
71     coresessionwidget.ui
72     debugbufferviewoverlay.ui
73     debugconsole.ui
74     debuglogwidget.ui
75     inputwidget.ui
76     msgprocessorstatuswidget.ui
77     nicklistwidget.ui
78     passwordchangedlg.ui
79     settingsdlg.ui
80     settingspagedlg.ui
81     simplenetworkeditor.ui
82     receivefiledlg.ui
83     topicwidget.ui
84 )
85
86 set(LIBS )
87 set(QT_MODULES )
88
89 if (WITH_KDE4)
90     add_definitions(-DHAVE_KDE ${KDE4_DEFINITIONS})
91     include_directories(${KDE4_INCLUDES})
92     list(APPEND SOURCES knotificationbackend.cpp)
93     list(APPEND LIBS ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBRARY} ${KDE4_KNOTIFYCONFIG_LIBRARY})
94 endif()
95
96 if (WITH_KF5)
97     list(APPEND SOURCES knotificationbackend.cpp)
98     list(APPEND LIBS KF5::ConfigWidgets KF5::Notifications KF5::NotifyConfig KF5::WidgetsAddons KF5::XmlGui)
99 endif()
100
101 if (LibsnoreQt5_FOUND)
102     add_definitions(-DHAVE_LIBSNORE)
103     list(APPEND SOURCES snorenotificationbackend.cpp)
104     list(APPEND FORMS   snorentificationconfigwidget.ui)
105     list(APPEND LIBS    Snore::Libsnore Snore::LibsnoreSettings)
106 endif()
107
108 if (Qt5Multimedia_FOUND)
109     add_definitions(-DHAVE_QTMULTIMEDIA)
110     list(APPEND QT_MODULES Multimedia)
111     set(SOURCES ${SOURCES} qtmultimedianotificationbackend.cpp)
112     set(FORMS ${FORMS}     qtmultimedianotificationconfigwidget.ui)
113 endif()
114
115 if (PHONON_FOUND OR Phonon4Qt5_FOUND)
116     add_definitions(-DHAVE_PHONON)
117     include_directories(${PHONON_INCLUDES})
118     set(SOURCES ${SOURCES} phononnotificationbackend.cpp)
119     set(FORMS ${FORMS}     phononnotificationconfigwidget.ui)
120     list(APPEND LIBS ${PHONON_LIBS})  # PHONON_LIBRARIES only exists in config mode, it's not set by the legacy FindPhonon.cmake
121 endif()
122
123 if (QT_QTDBUS_FOUND OR Qt5DBus_FOUND)
124     add_definitions(-DHAVE_DBUS)
125     list(APPEND QT_MODULES DBus)
126     if (dbusmenu-qt_FOUND OR dbusmenu-qt5_FOUND)
127         add_definitions(-DHAVE_DBUSMENU)
128         include_directories(${dbusmenu-qt_INCLUDE_DIRS} ${dbusmenu-qt5_INCLUDE_DIRS})
129         if (dbusmenu-qt_FOUND)
130             list(APPEND LIBS dbusmenu-qt)
131         else()
132             list(APPEND LIBS dbusmenu-qt5)
133         endif()
134     endif()
135
136     list(APPEND SOURCES statusnotifieritem.cpp statusnotifieritemdbus.cpp dockmanagernotificationbackend.cpp)
137     qt_add_dbus_interface(SOURCES ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
138     qt_add_dbus_interface(SOURCES ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
139     qt_add_dbus_adaptor  (SOURCES ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
140 endif()
141
142 if (HAVE_WEBKIT)
143     add_definitions(-DHAVE_WEBKIT)
144     list(APPEND QT_MODULES WebKit)
145     if (USE_QT5)
146         list(APPEND QT_MODULES WebKitWidgets)
147     endif()
148 endif()
149
150 if (HAVE_WEBENGINE)
151     add_definitions(-DHAVE_WEBENGINE)
152     list(APPEND QT_MODULES WebEngine)
153     if (USE_QT5)
154         list(APPEND QT_MODULES WebEngineWidgets)
155     endif()
156 endif()
157
158 if(HAVE_SSL)
159   set(SOURCES ${SOURCES} sslinfodlg.cpp)
160   set(FORMS ${FORMS} sslinfodlg.ui)
161 endif()
162
163 if (INDICATEQT_FOUND)
164     add_definitions(-DHAVE_INDICATEQT)
165     include_directories(${INDICATEQT_INCLUDE_DIRS})
166     list(APPEND SOURCES indicatornotificationbackend.cpp)
167     list(APPEND FORMS   indicatornotificationconfigwidget.ui)
168     list(APPEND LIBS ${INDICATEQT_LIBRARIES})
169 endif()
170
171 if (WITH_NOTIFICATION_CENTER)
172     add_definitions(-DHAVE_NOTIFICATION_CENTER)
173     list(APPEND SOURCES osxnotificationbackend.mm)
174     list(APPEND LIBS "/System/Library/Frameworks/Foundation.framework")
175 endif()
176
177 if (KF5Sonnet_FOUND)
178     add_definitions(-DHAVE_SONNET)
179     list(APPEND SOURCES settingspages/sonnetsettingspage.cpp)
180     list(APPEND LIBS KF5::SonnetUi)
181 endif()
182
183 foreach(FORM ${FORMS})
184   set(FORMPATH ${FORMPATH} ui/${FORM})
185 endforeach(FORM ${FORMS})
186
187 # handle settingspages
188 include(settingspages/settingspages.cmake)
189 foreach(SP ${SETTINGSPAGES})
190   set(SPSRC ${SPSRC} settingspages/${SP}settingspage.cpp)
191   set(SPFRM ${SPFRM} settingspages/${SP}settingspage.ui)
192 endforeach(SP ${SETTINGSPAGES})
193 foreach(SRC ${SP_SOURCES})
194   set(SPSRC ${SPSRC} settingspages/${SRC})
195 endforeach(SRC ${SP_SOURCES})
196 foreach(FRM ${SP_FORMS})
197   set(SPFRM ${SPFRM} settingspages/${FRM})
198 endforeach(FRM ${SP_FORMS})
199
200 include_directories(${CMAKE_SOURCE_DIR}/src/common
201                     ${CMAKE_SOURCE_DIR}/src/client
202                     ${CMAKE_SOURCE_DIR}/src/qtui
203                     ${CMAKE_SOURCE_DIR}/src/qtui/settingspages
204                     ${CMAKE_SOURCE_DIR}/src/uisupport
205 )
206
207 qt_wrap_ui(UI ${FORMPATH} ${SPFRM})
208
209 if (USE_QT5)
210     list(APPEND QT_MODULES Widgets)
211 endif()
212
213
214 add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${UI})
215 qt_use_modules(mod_qtui Core Gui Network ${QT_MODULES})
216
217 target_link_libraries(mod_qtui mod_client mod_common mod_uisupport ${LIBS})