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