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