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