cb040e06cc1bcd522a01934d99e120900137b886
[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_SNORENOTIFY)
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         list(APPEND LIBS ${dbusmenu-qt_LIBRARIES} ${dbusmenu-qt5_LIBRARIES})
114     endif()
115
116     list(APPEND SOURCES statusnotifieritem.cpp statusnotifieritemdbus.cpp dockmanagernotificationbackend.cpp)
117     qt_add_dbus_interface(SOURCES ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
118     qt_add_dbus_interface(SOURCES ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
119     qt_add_dbus_adaptor  (SOURCES ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
120 endif()
121
122 if (QT_QTWEBKIT_FOUND OR Qt5Webkit_FOUND)
123     add_definitions(-DHAVE_WEBKIT)
124     list(APPEND QT_MODULES Webkit XmlPatterns)
125 endif()
126
127 if(HAVE_SSL)
128   set(SOURCES ${SOURCES} sslinfodlg.cpp)
129   set(FORMS ${FORMS} sslinfodlg.ui)
130 endif(HAVE_SSL)
131
132 if (INDICATEQT_FOUND)
133     add_definitions(-DHAVE_INDICATEQT)
134     include_directories(${INDICATEQT_INCLUDE_DIRS})
135     list(APPEND SOURCES indicatornotificationbackend.cpp)
136     list(APPEND FORMS   indicatornotificationconfigwidget.ui)
137     list(APPEND LIBS ${INDICATEQT_LIBRARIES})
138 endif()
139
140 if (WITH_NOTIFICATION_CENTER)
141     add_definitions(-DHAVE_NOTIFICATION_CENTER)
142     list(APPEND SOURCES osxnotificationbackend.mm)
143     list(APPEND LIBS "/System/Library/Frameworks/Foundation.framework")
144 endif()
145
146 foreach(FORM ${FORMS})
147   set(FORMPATH ${FORMPATH} ui/${FORM})
148 endforeach(FORM ${FORMS})
149
150 # handle settingspages
151 include(settingspages/settingspages.cmake)
152 foreach(SP ${SETTINGSPAGES})
153   set(SPSRC ${SPSRC} settingspages/${SP}settingspage.cpp)
154   set(SPFRM ${SPFRM} settingspages/${SP}settingspage.ui)
155 endforeach(SP ${SETTINGSPAGES})
156 foreach(SRC ${SP_SOURCES})
157   set(SPSRC ${SPSRC} settingspages/${SRC})
158 endforeach(SRC ${SP_SOURCES})
159 foreach(FRM ${SP_FORMS})
160   set(SPFRM ${SPFRM} settingspages/${FRM})
161 endforeach(FRM ${SP_FORMS})
162
163 include_directories(${CMAKE_SOURCE_DIR}/src/common
164                     ${CMAKE_SOURCE_DIR}/src/client
165                     ${CMAKE_SOURCE_DIR}/src/qtui
166                     ${CMAKE_SOURCE_DIR}/src/qtui/settingspages
167                     ${CMAKE_SOURCE_DIR}/src/uisupport
168
169 )
170
171 qt_wrap_ui(UI ${FORMPATH} ${SPFRM})
172
173 if (USE_QT5)
174     list(APPEND QT_MODULES Widgets)
175 endif()
176
177
178 add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${UI})
179 qt_use_modules(mod_qtui Core Gui Network ${QT_MODULES})
180
181 if (LIBS)
182     target_link_libraries(mod_qtui ${LIBS})
183 endif()
184
185 add_dependencies(mod_qtui mod_common mod_client mod_uisupport)