Enable automoc
[quassel.git] / src / qtui / CMakeLists.txt
1 # Builds the qtui module
2
3 set(_modules )
4
5 if(WITH_QT5)
6   list(APPEND _modules Widgets)
7 endif(WITH_QT5)
8
9 if(HAVE_DBUS)
10   list(APPEND _modules DBus)
11 endif(HAVE_DBUS)
12
13 if(HAVE_WEBKIT)
14   list(APPEND _modules Webkit XmlPatterns)
15 endif(HAVE_WEBKIT)
16
17 setup_qt_variables(Gui Network ${_modules})
18
19 set(SOURCES
20     aboutdlg.cpp
21     awaylogfilter.cpp
22     awaylogview.cpp
23     bufferwidget.cpp
24     channellistdlg.cpp
25     chatitem.cpp
26     chatline.cpp
27     chatlinemodel.cpp
28     chatlinemodelitem.cpp
29     chatmonitorfilter.cpp
30     chatmonitorview.cpp
31     chatscene.cpp
32     chatview.cpp
33     chatviewsearchbar.cpp
34     chatviewsearchcontroller.cpp
35     chatviewsettings.cpp
36     columnhandleitem.cpp
37     coreconfigwizard.cpp
38     coreconnectdlg.cpp
39     coreconnectionstatuswidget.cpp
40     coreinfodlg.cpp
41     debugbufferviewoverlay.cpp
42     debugconsole.cpp
43     debuglogwidget.cpp
44     debugmessagemodelfilter.cpp
45     inputwidget.cpp
46     ircconnectionwizard.cpp
47     legacysystemtray.cpp
48     mainpage.cpp
49     mainwin.cpp
50     markerlineitem.cpp
51     msgprocessorstatuswidget.cpp
52     nicklistwidget.cpp
53     qtui.cpp
54     qtuiapplication.cpp
55     qtuimessageprocessor.cpp
56     qtuisettings.cpp
57     qtuistyle.cpp
58     receivefiledlg.cpp
59     settingsdlg.cpp
60     settingspagedlg.cpp
61     simplenetworkeditor.cpp
62     systemtray.cpp
63     systraynotificationbackend.cpp
64     taskbarnotificationbackend.cpp
65     titlesetter.cpp
66     topicwidget.cpp
67     verticaldock.cpp
68     webpreviewitem.cpp
69 )
70
71 set(FORMS
72     aboutdlg.ui
73     bufferviewwidget.ui
74     bufferwidget.ui
75     channellistdlg.ui
76     chatviewsearchbar.ui
77     coreconfigwizardintropage.ui
78     coreconfigwizardadminuserpage.ui
79     coreconfigwizardstorageselectionpage.ui
80     coreconfigwizardsyncpage.ui
81     coreconnectauthdlg.ui
82     coreconnectionstatuswidget.ui
83     coreinfodlg.ui
84     debugbufferviewoverlay.ui
85     debugconsole.ui
86     debuglogwidget.ui
87     inputwidget.ui
88     msgprocessorstatuswidget.ui
89     nicklistwidget.ui
90     settingsdlg.ui
91     settingspagedlg.ui
92     simplenetworkeditor.ui
93     receivefiledlg.ui
94     topicwidget.ui)
95
96 if(HAVE_KDE)
97   set(SOURCES ${SOURCES} knotificationbackend.cpp)
98 else(HAVE_KDE)
99   if(HAVE_SNORENOTIFY)
100     set(SOURCES ${SOURCES} snorenotificationbackend.cpp)
101     set(FORMS ${FORMS} snorentificationconfigwidget.ui)
102   endif(HAVE_SNORENOTIFY)
103   if(HAVE_PHONON)
104     set(SOURCES ${SOURCES} phononnotificationbackend.cpp)
105     set(FORMS ${FORMS} phononnotificationconfigwidget.ui)
106     include_directories(${PHONON_INCLUDES})
107   endif(HAVE_PHONON)
108 endif(HAVE_KDE)
109
110 if(HAVE_DBUS)
111   set(SOURCES ${SOURCES} statusnotifieritem.cpp statusnotifieritemdbus.cpp dockmanagernotificationbackend.cpp)
112   set(FORMS ${FORMS})
113   if(WITH_QT5)
114     qt5_add_dbus_interface(DBUS ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
115     qt5_add_dbus_interface(DBUS ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
116     qt5_add_dbus_adaptor(DBUS ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
117   else(WITH_QT5)
118     qt4_add_dbus_interface(DBUS ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
119     qt4_add_dbus_interface(DBUS ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
120     qt4_add_dbus_adaptor(DBUS ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
121   endif(WITH_QT5)
122 endif(HAVE_DBUS)
123
124 if(HAVE_SSL)
125   set(SOURCES ${SOURCES} sslinfodlg.cpp)
126   set(FORMS ${FORMS} sslinfodlg.ui)
127 endif(HAVE_SSL)
128
129 if(INDICATEQT_FOUND)
130   set(SOURCES ${SOURCES} indicatornotificationbackend.cpp)
131   set(FORMS ${FORMS} indicatornotificationconfigwidget.ui)
132   include_directories(${INDICATEQT_INCLUDE_DIRS})
133 endif(INDICATEQT_FOUND)
134
135 if(HAVE_NOTIFICATION_CENTER)
136   set(SOURCES ${SOURCES} osxnotificationbackend.mm)
137 endif()
138
139 foreach(FORM ${FORMS})
140   set(FORMPATH ${FORMPATH} ui/${FORM})
141 endforeach(FORM ${FORMS})
142
143 # handle settingspages
144 include(settingspages/settingspages.cmake)
145 foreach(SP ${SETTINGSPAGES})
146   set(SPSRC ${SPSRC} settingspages/${SP}settingspage.cpp)
147   set(SPFRM ${SPFRM} settingspages/${SP}settingspage.ui)
148 endforeach(SP ${SETTINGSPAGES})
149 foreach(SRC ${SP_SOURCES})
150   set(SPSRC ${SPSRC} settingspages/${SRC})
151 endforeach(SRC ${SP_SOURCES})
152 foreach(FRM ${SP_FORMS})
153   set(SPFRM ${SPFRM} settingspages/${FRM})
154 endforeach(FRM ${SP_FORMS})
155
156 include_directories(${CMAKE_SOURCE_DIR}/src/common
157                     ${CMAKE_SOURCE_DIR}/src/client
158                     ${CMAKE_SOURCE_DIR}/src/qtui
159                     ${CMAKE_SOURCE_DIR}/src/qtui/settingspages
160                     ${CMAKE_SOURCE_DIR}/src/uisupport
161                     ${CMAKE_CURRENT_BINARY_DIR}
162                     ${QUASSEL_QT_INCLUDES})
163
164 if(WITH_QT5)
165   qt5_wrap_ui(UI ${FORMPATH} ${SPFRM})
166 else(WITH_QT5)
167   qt4_wrap_ui(UI ${FORMPATH} ${SPFRM})
168 endif(WITH_QT5)
169
170 add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${DBUS} ${UI})
171 add_dependencies(mod_qtui mod_common mod_client mod_uisupport)
172 set_target_properties(mod_qtui PROPERTIES COMPILE_FLAGS "${QUASSEL_QT_COMPILEFLAGS}")