ebf128a889235c607b6caef191beae28e1a956a2
[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 SOURCES knotificationbackend.cpp)
93     list(APPEND LIBS KF5::ConfigWidgets KF5::Notifications KF5::NotifyConfig KF5::XmlGui)
94 endif()
95
96 if (LIBSNORE_FOUND)
97     add_definitions(-DHAVE_LIBSNORE)
98     include_directories(${LIBSNORE_INCLUDE_DIRS})
99     list(APPEND SOURCES snorenotificationbackend.cpp)
100     list(APPEND FORMS   snorentificationconfigwidget.ui)
101     list(APPEND LIBS ${LIBSNORE_LIBRARIES})
102 endif()
103
104 if (PHONON_FOUND OR Phonon4Qt5_FOUND)
105     add_definitions(-DHAVE_PHONON)
106     include_directories(${PHONON_INCLUDES})
107     set(SOURCES ${SOURCES} phononnotificationbackend.cpp)
108     set(FORMS ${FORMS}     phononnotificationconfigwidget.ui)
109     list(APPEND LIBS ${PHONON_LIBS})  # PHONON_LIBRARIES only exists in config mode, it's not set by the legacy FindPhonon.cmake
110 endif()
111
112 if (QT_QTDBUS_FOUND OR Qt5DBus_FOUND)
113     add_definitions(-DHAVE_DBUS)
114     list(APPEND QT_MODULES DBus)
115     if (dbusmenu-qt_FOUND OR dbusmenu-qt5_FOUND)
116         add_definitions(-DHAVE_DBUSMENU)
117         include_directories(${dbusmenu-qt_INCLUDE_DIRS} ${dbusmenu-qt5_INCLUDE_DIRS})
118         if (dbusmenu-qt_FOUND)
119             list(APPEND LIBS dbusmenu-qt)
120         else()
121             list(APPEND LIBS dbusmenu-qt5)
122         endif()
123     endif()
124
125     list(APPEND SOURCES statusnotifieritem.cpp statusnotifieritemdbus.cpp dockmanagernotificationbackend.cpp)
126     qt_add_dbus_interface(SOURCES ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
127     qt_add_dbus_interface(SOURCES ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
128     qt_add_dbus_adaptor  (SOURCES ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
129 endif()
130
131 if (QT_QTWEBKIT_FOUND OR Qt5WebKitWidgets_FOUND)
132     add_definitions(-DHAVE_WEBKIT)
133     list(APPEND QT_MODULES WebKit)
134     if (USE_QT5)
135         list(APPEND QT_MODULES WebKitWidgets)
136     endif()
137 endif()
138
139 if(HAVE_SSL)
140   set(SOURCES ${SOURCES} sslinfodlg.cpp)
141   set(FORMS ${FORMS} sslinfodlg.ui)
142 endif(HAVE_SSL)
143
144 if (INDICATEQT_FOUND)
145     add_definitions(-DHAVE_INDICATEQT)
146     include_directories(${INDICATEQT_INCLUDE_DIRS})
147     list(APPEND SOURCES indicatornotificationbackend.cpp)
148     list(APPEND FORMS   indicatornotificationconfigwidget.ui)
149     list(APPEND LIBS ${INDICATEQT_LIBRARIES})
150 endif()
151
152 if (WITH_NOTIFICATION_CENTER)
153     add_definitions(-DHAVE_NOTIFICATION_CENTER)
154     list(APPEND SOURCES osxnotificationbackend.mm)
155     list(APPEND LIBS "/System/Library/Frameworks/Foundation.framework")
156 endif()
157
158 foreach(FORM ${FORMS})
159   set(FORMPATH ${FORMPATH} ui/${FORM})
160 endforeach(FORM ${FORMS})
161
162 # handle settingspages
163 include(settingspages/settingspages.cmake)
164 foreach(SP ${SETTINGSPAGES})
165   set(SPSRC ${SPSRC} settingspages/${SP}settingspage.cpp)
166   set(SPFRM ${SPFRM} settingspages/${SP}settingspage.ui)
167 endforeach(SP ${SETTINGSPAGES})
168 foreach(SRC ${SP_SOURCES})
169   set(SPSRC ${SPSRC} settingspages/${SRC})
170 endforeach(SRC ${SP_SOURCES})
171 foreach(FRM ${SP_FORMS})
172   set(SPFRM ${SPFRM} settingspages/${FRM})
173 endforeach(FRM ${SP_FORMS})
174
175 include_directories(${CMAKE_SOURCE_DIR}/src/common
176                     ${CMAKE_SOURCE_DIR}/src/client
177                     ${CMAKE_SOURCE_DIR}/src/qtui
178                     ${CMAKE_SOURCE_DIR}/src/qtui/settingspages
179                     ${CMAKE_SOURCE_DIR}/src/uisupport
180 )
181
182 qt_wrap_ui(UI ${FORMPATH} ${SPFRM})
183
184 if (USE_QT5)
185     list(APPEND QT_MODULES Widgets)
186 endif()
187
188
189 add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${UI})
190 qt_use_modules(mod_qtui Core Gui Network ${QT_MODULES})
191
192 target_link_libraries(mod_qtui mod_client mod_common mod_uisupport ${LIBS})