modernize: Migrate action-related things to PMF connects
[quassel.git] / src / qtui / CMakeLists.txt
1 quassel_add_module(QtUi EXPORT)
2
3 target_sources(${TARGET} PRIVATE
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     resourcetreedlg.cpp
46     settingsdlg.cpp
47     settingspagedlg.cpp
48     simplenetworkeditor.cpp
49     systemtray.cpp
50     systrayanimationnotificationbackend.cpp
51     systraynotificationbackend.cpp
52     taskbarnotificationbackend.cpp
53     titlesetter.cpp
54     topicwidget.cpp
55     verticaldock.cpp
56     webpreviewitem.cpp
57
58     # UI files
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     resourcetreedlg.ui
82     settingsdlg.ui
83     settingspagedlg.ui
84     simplenetworkeditor.ui
85     systrayanimationconfigwidget.ui
86     topicwidget.ui
87 )
88
89 # Handle settingspages
90 target_include_directories(${TARGET} PRIVATE settingspages)
91 include(settingspages/settingspages.cmake)
92 foreach(page ${SETTINGSPAGES})
93     target_sources(${TARGET} PRIVATE
94         settingspages/${page}settingspage.cpp
95         settingspages/${page}settingspage.ui
96     )
97 endforeach()
98 foreach(src ${SP_SOURCES})
99     target_sources(${TARGET} PRIVATE settingspages/${src})
100 endforeach()
101 foreach(form ${SP_FORMS})
102     target_sources(${TARGET} PRIVATE settingspages/${form})
103 endforeach()
104
105 target_link_libraries(${TARGET}
106     PUBLIC
107         Qt5::Core
108         Qt5::Gui
109         Qt5::Network
110         Qt5::Widgets
111         Quassel::UiSupport
112         Quassel::Client
113         Quassel::Common
114 )
115
116 if (WITH_KDE)
117     target_sources(${TARGET} PRIVATE knotificationbackend.cpp)
118     target_link_libraries(${TARGET} PUBLIC
119         KF5::ConfigWidgets
120         KF5::Notifications
121         KF5::NotifyConfig
122         KF5::WidgetsAddons
123         KF5::XmlGui
124     )
125 endif()
126
127 if (KF5Sonnet_FOUND)
128     target_compile_definitions(${TARGET} PRIVATE -DHAVE_SONNET)
129     target_sources(${TARGET} PRIVATE settingspages/sonnetsettingspage.cpp)
130     target_link_libraries(${TARGET} PRIVATE KF5::SonnetUi)
131 endif()
132
133 if (Qt5Multimedia_FOUND)
134     target_compile_definitions(${TARGET} PRIVATE -DHAVE_QTMULTIMEDIA)
135     target_sources(${TARGET} PRIVATE
136         qtmultimedianotificationbackend.cpp
137         qtmultimedianotificationconfigwidget.ui
138     )
139     target_link_libraries(${TARGET} PRIVATE Qt5::Multimedia)
140 endif()
141
142 if (Qt5DBus_FOUND)
143     target_compile_definitions(${TARGET} PRIVATE -DHAVE_DBUS)
144     target_link_libraries(${TARGET} PRIVATE Qt5::DBus)
145     if (dbusmenu-qt5_FOUND)
146         target_compile_definitions(${TARGET} PRIVATE -DHAVE_DBUSMENU)
147         target_link_libraries(${TARGET} PRIVATE dbusmenu-qt5)
148     endif()
149
150     qt5_add_dbus_interface(DBUS_SOURCES ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
151     qt5_add_dbus_interface(DBUS_SOURCES ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
152     qt5_add_dbus_adaptor  (DBUS_SOURCES ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
153
154     target_sources(${TARGET} PRIVATE
155         dockmanagernotificationbackend.cpp
156         statusnotifieritem.cpp
157         statusnotifieritemdbus.cpp
158         ${DBUS_SOURCES}
159     )
160 endif()
161
162 if (HAVE_WEBKIT)
163     target_compile_definitions(${TARGET} PRIVATE -DHAVE_WEBKIT)
164     target_link_libraries(${TARGET} PRIVATE
165         Qt5::WebKit
166         Qt5::WebKitWidgets
167     )
168 endif()
169
170 if (HAVE_WEBENGINE)
171     target_compile_definitions(${TARGET} PRIVATE -DHAVE_WEBENGINE)
172     target_link_libraries(${TARGET} PRIVATE
173         Qt5::WebEngine
174         Qt5::WebEngineWidgets)
175 endif()
176
177 if (HAVE_SSL)
178     target_sources(${TARGET} PRIVATE
179         sslinfodlg.cpp
180         sslinfodlg.ui
181     )
182 endif()
183
184 if (LibsnoreQt5_FOUND)
185     target_compile_definitions(${TARGET} PRIVATE -DHAVE_LIBSNORE)
186     target_sources(${TARGET} PRIVATE
187         snorenotificationbackend.cpp
188         snorentificationconfigwidget.ui
189     )
190     target_link_libraries(${TARGET} PRIVATE Snore::Libsnore Snore::LibsnoreSettings)
191 endif()
192
193 if (WITH_NOTIFICATION_CENTER)
194     target_compile_definitions(${TARGET} PRIVATE -DHAVE_NOTIFICATION_CENTER)
195     target_sources(${TARGET} PRIVATE osxnotificationbackend.mm)
196     target_link_libraries(${TARGET} PRIVATE "/System/Library/Frameworks/Foundation.framework")
197 endif()
198
199 if (WITH_OXYGEN_ICONS)
200     set_property(SOURCE qtui.cpp APPEND PROPERTY COMPILE_DEFINITIONS WITH_OXYGEN_ICONS)
201 endif()