qtui: Make the debug log a proper dialog
[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_KDE4)
92     add_definitions(-DHAVE_KDE ${KDE4_DEFINITIONS})
93     include_directories(${KDE4_INCLUDES})
94     list(APPEND SOURCES knotificationbackend.cpp)
95     list(APPEND LIBS ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBRARY} ${KDE4_KNOTIFYCONFIG_LIBRARY})
96 endif()
97
98 if (WITH_KF5)
99     list(APPEND SOURCES knotificationbackend.cpp)
100     list(APPEND LIBS KF5::ConfigWidgets KF5::Notifications KF5::NotifyConfig KF5::WidgetsAddons KF5::XmlGui)
101 endif()
102
103 if (LibsnoreQt5_FOUND)
104     add_definitions(-DHAVE_LIBSNORE)
105     list(APPEND SOURCES snorenotificationbackend.cpp)
106     list(APPEND FORMS   snorentificationconfigwidget.ui)
107     list(APPEND LIBS    Snore::Libsnore Snore::LibsnoreSettings)
108 endif()
109
110 if (Qt5Multimedia_FOUND)
111     add_definitions(-DHAVE_QTMULTIMEDIA)
112     list(APPEND QT_MODULES Multimedia)
113     set(SOURCES ${SOURCES} qtmultimedianotificationbackend.cpp)
114     set(FORMS ${FORMS}     qtmultimedianotificationconfigwidget.ui)
115 endif()
116
117 if (PHONON_FOUND OR Phonon4Qt5_FOUND)
118     add_definitions(-DHAVE_PHONON)
119     include_directories(${PHONON_INCLUDES})
120     set(SOURCES ${SOURCES} phononnotificationbackend.cpp)
121     set(FORMS ${FORMS}     phononnotificationconfigwidget.ui)
122     list(APPEND LIBS ${PHONON_LIBS})  # PHONON_LIBRARIES only exists in config mode, it's not set by the legacy FindPhonon.cmake
123 endif()
124
125 if (QT_QTDBUS_FOUND OR Qt5DBus_FOUND)
126     add_definitions(-DHAVE_DBUS)
127     list(APPEND QT_MODULES DBus)
128     if (dbusmenu-qt_FOUND OR dbusmenu-qt5_FOUND)
129         add_definitions(-DHAVE_DBUSMENU)
130         include_directories(${dbusmenu-qt_INCLUDE_DIRS} ${dbusmenu-qt5_INCLUDE_DIRS})
131         if (dbusmenu-qt_FOUND)
132             list(APPEND LIBS dbusmenu-qt)
133         else()
134             list(APPEND LIBS dbusmenu-qt5)
135         endif()
136     endif()
137
138     list(APPEND SOURCES statusnotifieritem.cpp statusnotifieritemdbus.cpp dockmanagernotificationbackend.cpp)
139     qt_add_dbus_interface(SOURCES ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
140     qt_add_dbus_interface(SOURCES ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
141     qt_add_dbus_adaptor  (SOURCES ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
142 endif()
143
144 if (HAVE_WEBKIT)
145     add_definitions(-DHAVE_WEBKIT)
146     list(APPEND QT_MODULES WebKit)
147     if (USE_QT5)
148         list(APPEND QT_MODULES WebKitWidgets)
149     endif()
150 endif()
151
152 if (HAVE_WEBENGINE)
153     add_definitions(-DHAVE_WEBENGINE)
154     list(APPEND QT_MODULES WebEngine)
155     if (USE_QT5)
156         list(APPEND QT_MODULES WebEngineWidgets)
157     endif()
158 endif()
159
160 if(HAVE_SSL)
161   set(SOURCES ${SOURCES} sslinfodlg.cpp)
162   set(FORMS ${FORMS} sslinfodlg.ui)
163 endif()
164
165 if (INDICATEQT_FOUND)
166     add_definitions(-DHAVE_INDICATEQT)
167     include_directories(${INDICATEQT_INCLUDE_DIRS})
168     list(APPEND SOURCES indicatornotificationbackend.cpp)
169     list(APPEND FORMS   indicatornotificationconfigwidget.ui)
170     list(APPEND LIBS ${INDICATEQT_LIBRARIES})
171 endif()
172
173 if (WITH_NOTIFICATION_CENTER)
174     add_definitions(-DHAVE_NOTIFICATION_CENTER)
175     list(APPEND SOURCES osxnotificationbackend.mm)
176     list(APPEND LIBS "/System/Library/Frameworks/Foundation.framework")
177 endif()
178
179 if (KF5Sonnet_FOUND)
180     add_definitions(-DHAVE_SONNET)
181     list(APPEND SOURCES settingspages/sonnetsettingspage.cpp)
182     list(APPEND LIBS KF5::SonnetUi)
183 endif()
184
185 foreach(FORM ${FORMS})
186   set(FORMPATH ${FORMPATH} ui/${FORM})
187 endforeach(FORM ${FORMS})
188
189 # handle settingspages
190 include(settingspages/settingspages.cmake)
191 foreach(SP ${SETTINGSPAGES})
192   set(SPSRC ${SPSRC} settingspages/${SP}settingspage.cpp)
193   set(SPFRM ${SPFRM} settingspages/${SP}settingspage.ui)
194 endforeach(SP ${SETTINGSPAGES})
195 foreach(SRC ${SP_SOURCES})
196   set(SPSRC ${SPSRC} settingspages/${SRC})
197 endforeach(SRC ${SP_SOURCES})
198 foreach(FRM ${SP_FORMS})
199   set(SPFRM ${SPFRM} settingspages/${FRM})
200 endforeach(FRM ${SP_FORMS})
201
202 include_directories(${CMAKE_SOURCE_DIR}/src/common
203                     ${CMAKE_SOURCE_DIR}/src/client
204                     ${CMAKE_SOURCE_DIR}/src/qtui
205                     ${CMAKE_SOURCE_DIR}/src/qtui/settingspages
206                     ${CMAKE_SOURCE_DIR}/src/uisupport
207 )
208
209 qt_wrap_ui(UI ${FORMPATH} ${SPFRM})
210
211 if (USE_QT5)
212     list(APPEND QT_MODULES Widgets)
213 endif()
214
215
216 add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${UI})
217 qt_use_modules(mod_qtui Core Gui Network ${QT_MODULES})
218
219 target_link_libraries(mod_qtui mod_client mod_common mod_uisupport ${LIBS})