Add notification backend to support DockManagers
[quassel.git] / src / qtui / CMakeLists.txt
1 # Builds the qtui module
2
3 set(_modules )
4
5 if(WITH_QT5)
6   list(APPEND _modules Widgets)
7 endif(WITH_QT5)
8
9 if(HAVE_DBUS)
10   list(APPEND _modules DBus)
11 endif(HAVE_DBUS)
12
13 if(HAVE_WEBKIT)
14   list(APPEND _modules Webkit XmlPatterns)
15 endif(HAVE_WEBKIT)
16
17 setup_qt_variables(Gui Network ${_modules})
18
19 set(SOURCES
20     aboutdlg.cpp
21     awaylogfilter.cpp
22     awaylogview.cpp
23     bufferwidget.cpp
24     channellistdlg.cpp
25     chatitem.cpp
26     chatline.cpp
27     chatlinemodel.cpp
28     chatlinemodelitem.cpp
29     chatmonitorfilter.cpp
30     chatmonitorview.cpp
31     chatscene.cpp
32     chatview.cpp
33     chatviewsearchbar.cpp
34     chatviewsearchcontroller.cpp
35     chatviewsettings.cpp
36     columnhandleitem.cpp
37     coreconfigwizard.cpp
38     coreconnectdlg.cpp
39     coreconnectionstatuswidget.cpp
40     coreinfodlg.cpp
41     debugbufferviewoverlay.cpp
42     debugconsole.cpp
43     debuglogwidget.cpp
44     debugmessagemodelfilter.cpp
45     inputwidget.cpp
46     ircconnectionwizard.cpp
47     legacysystemtray.cpp
48     mainpage.cpp
49     mainwin.cpp
50     markerlineitem.cpp
51     msgprocessorstatuswidget.cpp
52     nicklistwidget.cpp
53     qtui.cpp
54     qtuiapplication.cpp
55     qtuimessageprocessor.cpp
56     qtuisettings.cpp
57     qtuistyle.cpp
58     settingsdlg.cpp
59     settingspagedlg.cpp
60     simplenetworkeditor.cpp
61     systemtray.cpp
62     systraynotificationbackend.cpp
63     taskbarnotificationbackend.cpp
64     titlesetter.cpp
65     topicwidget.cpp
66     verticaldock.cpp
67     webpreviewitem.cpp)
68
69 set(MOC_HDRS
70     aboutdlg.h
71     awaylogfilter.h
72     awaylogview.h
73     bufferwidget.h
74     channellistdlg.h
75     chatitem.h
76     chatlinemodel.h
77     chatmonitorfilter.h
78     chatmonitorview.h
79     chatscene.h
80     chatview.h
81     chatviewsearchbar.h
82     chatviewsearchcontroller.h
83     columnhandleitem.h
84     coreconfigwizard.h
85     coreconnectdlg.h
86     coreconnectionstatuswidget.h
87     coreinfodlg.h
88     debugbufferviewoverlay.h
89     debugconsole.h
90     debuglogwidget.h
91     debugmessagemodelfilter.h
92     inputwidget.h
93     ircconnectionwizard.h
94     legacysystemtray.h
95     mainpage.h
96     mainwin.h
97     markerlineitem.h
98     msgprocessorstatuswidget.h
99     nicklistwidget.h
100     qtui.h
101     qtuiapplication.h
102     qtuimessageprocessor.h
103     qtuistyle.h
104     settingsdlg.h
105     settingspagedlg.h
106     simplenetworkeditor.h
107     systemtray.h
108     systraynotificationbackend.h
109     taskbarnotificationbackend.h
110     titlesetter.h
111     topicwidget.h
112     verticaldock.h)
113
114 set(HEADERS
115     chatline.h
116     chatlinemodelitem.h
117     chatviewsettings.h
118     qtuisettings.h
119     webpreviewitem.h)
120
121 set(FORMS
122     aboutdlg.ui
123     bufferviewwidget.ui
124     bufferwidget.ui
125     channellistdlg.ui
126     chatviewsearchbar.ui
127     coreconfigwizardintropage.ui
128     coreconfigwizardadminuserpage.ui
129     coreconfigwizardstorageselectionpage.ui
130     coreconfigwizardsyncpage.ui
131     coreconnectauthdlg.ui
132     coreconnectionstatuswidget.ui
133     coreinfodlg.ui
134     debugbufferviewoverlay.ui
135     debugconsole.ui
136     debuglogwidget.ui
137     inputwidget.ui
138     msgprocessorstatuswidget.ui
139     nicklistwidget.ui
140     settingsdlg.ui
141     settingspagedlg.ui
142     simplenetworkeditor.ui
143     topicwidget.ui)
144
145 if(HAVE_KDE)
146   set(SOURCES ${SOURCES} knotificationbackend.cpp)
147   set(MOC_HDRS ${MOC_HDRS} knotificationbackend.h)
148 else(HAVE_KDE)
149   if(HAVE_PHONON)
150     set(SOURCES ${SOURCES} phononnotificationbackend.cpp)
151     set(MOC_HDRS ${MOC_HDRS} phononnotificationbackend.h)
152     set(FORMS ${FORMS} phononnotificationconfigwidget.ui)
153     include_directories(${PHONON_INCLUDES})
154   endif(HAVE_PHONON)
155 endif(HAVE_KDE)
156
157 if(HAVE_DBUS)
158   set(SOURCES ${SOURCES} statusnotifieritem.cpp statusnotifieritemdbus.cpp dockmanagernotificationbackend.cpp)
159   set(MOC_HDRS ${MOC_HDRS} statusnotifieritem.h statusnotifieritemdbus.h dockmanagernotificationbackend.h)
160   set(FORMS ${FORMS})
161   if(WITH_QT5)
162     qt5_add_dbus_interface(DBUS ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
163     qt5_add_dbus_interface(DBUS ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
164     qt5_add_dbus_adaptor(DBUS ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
165   else(WITH_QT5)
166     qt4_add_dbus_interface(DBUS ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
167     qt4_add_dbus_interface(DBUS ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
168     qt4_add_dbus_adaptor(DBUS ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
169   endif(WITH_QT5)
170 endif(HAVE_DBUS)
171
172 if(HAVE_SSL)
173   set(SOURCES ${SOURCES} sslinfodlg.cpp)
174   set(MOC_HDRS ${MOC_HDRS} sslinfodlg.h)
175   set(FORMS ${FORMS} sslinfodlg.ui)
176 endif(HAVE_SSL)
177
178 if(INDICATEQT_FOUND)
179   set(SOURCES ${SOURCES} indicatornotificationbackend.cpp)
180   set(MOC_HDRS ${MOC_HDRS} indicatornotificationbackend.h)
181   set(FORMS ${FORMS} indicatornotificationconfigwidget.ui)
182   include_directories(${INDICATEQT_INCLUDE_DIRS})
183 endif(INDICATEQT_FOUND)
184
185 if(HAVE_NOTIFICATION_CENTER)
186   set(SOURCES ${SOURCES} osxnotificationbackend.mm)
187   set(MOC_HDRS ${MOC_HDRS} osxnotificationbackend.h)
188 endif()
189
190 foreach(FORM ${FORMS})
191   set(FORMPATH ${FORMPATH} ui/${FORM})
192 endforeach(FORM ${FORMS})
193
194 # handle settingspages
195 include(settingspages/settingspages.inc)
196 foreach(SP ${SETTINGSPAGES})
197   set(SPSRC ${SPSRC} settingspages/${SP}settingspage.cpp)
198   set(SPHDR ${SPHDR} settingspages/${SP}settingspage.h)
199   set(SPFRM ${SPFRM} settingspages/${SP}settingspage.ui)
200 endforeach(SP ${SETTINGSPAGES})
201 foreach(SRC ${SP_SOURCES})
202   set(SPSRC ${SPSRC} settingspages/${SRC})
203 endforeach(SRC ${SP_SOURCES})
204 foreach(HDR ${SP_HEADERS})
205   set(SPHDR ${SPHDR} settingspages/${HDR})
206 endforeach(HDR ${SP_HEADERS})
207 foreach(FRM ${SP_FORMS})
208   set(SPFRM ${SPFRM} settingspages/${FRM})
209 endforeach(FRM ${SP_FORMS})
210
211 include_directories(${CMAKE_SOURCE_DIR}/src/common
212                     ${CMAKE_SOURCE_DIR}/src/client
213                     ${CMAKE_SOURCE_DIR}/src/qtui
214                     ${CMAKE_SOURCE_DIR}/src/qtui/settingspages
215                     ${CMAKE_SOURCE_DIR}/src/uisupport
216                     ${CMAKE_CURRENT_BINARY_DIR}
217                     ${QUASSEL_QT_INCLUDES})
218
219 if(WITH_QT5)
220   qt5_wrap_ui(UI ${FORMPATH} ${SPFRM})
221 else(WITH_QT5)
222   qt4_wrap_cpp(MOC ${MOC_HDRS} ${SPHDR})
223   qt4_wrap_ui(UI ${FORMPATH} ${SPFRM})
224 endif(WITH_QT5)
225
226 add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${MOC} ${DBUS} ${UI} ${HEADERS})
227 add_dependencies(mod_qtui mod_common mod_client mod_uisupport)
228 set_target_properties(mod_qtui PROPERTIES COMPILE_FLAGS "${QUASSEL_QT_COMPILEFLAGS}")