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