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