qt4-b-gone: Remove support for Phonon
[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_KF5)
92     list(APPEND SOURCES knotificationbackend.cpp)
93     list(APPEND LIBS KF5::ConfigWidgets KF5::Notifications KF5::NotifyConfig KF5::WidgetsAddons KF5::XmlGui)
94 endif()
95
96 if (LibsnoreQt5_FOUND)
97     add_definitions(-DHAVE_LIBSNORE)
98     list(APPEND SOURCES snorenotificationbackend.cpp)
99     list(APPEND FORMS   snorentificationconfigwidget.ui)
100     list(APPEND LIBS    Snore::Libsnore Snore::LibsnoreSettings)
101 endif()
102
103 if (Qt5Multimedia_FOUND)
104     add_definitions(-DHAVE_QTMULTIMEDIA)
105     list(APPEND QT_MODULES Multimedia)
106     set(SOURCES ${SOURCES} qtmultimedianotificationbackend.cpp)
107     set(FORMS ${FORMS}     qtmultimedianotificationconfigwidget.ui)
108 endif()
109
110 if (Qt5DBus_FOUND)
111     add_definitions(-DHAVE_DBUS)
112     list(APPEND QT_MODULES DBus)
113     if (dbusmenu-qt5_FOUND)
114         add_definitions(-DHAVE_DBUSMENU)
115         include_directories(${dbusmenu-qt5_INCLUDE_DIRS})
116         list(APPEND LIBS dbusmenu-qt5)
117     endif()
118
119     list(APPEND SOURCES statusnotifieritem.cpp statusnotifieritemdbus.cpp dockmanagernotificationbackend.cpp)
120     qt5_add_dbus_interface(SOURCES ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
121     qt5_add_dbus_interface(SOURCES ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
122     qt5_add_dbus_adaptor  (SOURCES ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
123 endif()
124
125 if (HAVE_WEBKIT)
126     add_definitions(-DHAVE_WEBKIT)
127     list(APPEND QT_MODULES WebKit WebKitWidgets)
128 endif()
129
130 if (HAVE_WEBENGINE)
131     add_definitions(-DHAVE_WEBENGINE)
132     list(APPEND QT_MODULES WebEngine WebEngineWidgets)
133 endif()
134
135 if(HAVE_SSL)
136   set(SOURCES ${SOURCES} sslinfodlg.cpp)
137   set(FORMS ${FORMS} sslinfodlg.ui)
138 endif()
139
140 if (WITH_NOTIFICATION_CENTER)
141     add_definitions(-DHAVE_NOTIFICATION_CENTER)
142     list(APPEND SOURCES osxnotificationbackend.mm)
143     list(APPEND LIBS "/System/Library/Frameworks/Foundation.framework")
144 endif()
145
146 if (KF5Sonnet_FOUND)
147     add_definitions(-DHAVE_SONNET)
148     list(APPEND SOURCES settingspages/sonnetsettingspage.cpp)
149     list(APPEND LIBS KF5::SonnetUi)
150 endif()
151
152 foreach(FORM ${FORMS})
153   set(FORMPATH ${FORMPATH} ui/${FORM})
154 endforeach(FORM ${FORMS})
155
156 # handle settingspages
157 include(settingspages/settingspages.cmake)
158 foreach(SP ${SETTINGSPAGES})
159   set(SPSRC ${SPSRC} settingspages/${SP}settingspage.cpp)
160   set(SPFRM ${SPFRM} settingspages/${SP}settingspage.ui)
161 endforeach(SP ${SETTINGSPAGES})
162 foreach(SRC ${SP_SOURCES})
163   set(SPSRC ${SPSRC} settingspages/${SRC})
164 endforeach(SRC ${SP_SOURCES})
165 foreach(FRM ${SP_FORMS})
166   set(SPFRM ${SPFRM} settingspages/${FRM})
167 endforeach(FRM ${SP_FORMS})
168
169 include_directories(${CMAKE_SOURCE_DIR}/src/common
170                     ${CMAKE_SOURCE_DIR}/src/client
171                     ${CMAKE_SOURCE_DIR}/src/qtui
172                     ${CMAKE_SOURCE_DIR}/src/qtui/settingspages
173                     ${CMAKE_SOURCE_DIR}/src/uisupport
174 )
175
176 qt5_wrap_ui(UI ${FORMPATH} ${SPFRM})
177
178 add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${UI})
179 qt5_use_modules(mod_qtui Core Gui Network Widgets ${QT_MODULES})
180
181 target_link_libraries(mod_qtui mod_client mod_common mod_uisupport ${LIBS})