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