Improve the CMake option stuff
[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 if(HAVE_KDE)
81   set(SOURCES ${SOURCES} knotificationbackend.cpp)
82 else(HAVE_KDE)
83   if(HAVE_SNORENOTIFY)
84     set(SOURCES ${SOURCES} snorenotificationbackend.cpp)
85     set(FORMS ${FORMS} snorentificationconfigwidget.ui)
86   endif(HAVE_SNORENOTIFY)
87   if(HAVE_PHONON)
88     set(SOURCES ${SOURCES} phononnotificationbackend.cpp)
89     set(FORMS ${FORMS} phononnotificationconfigwidget.ui)
90     include_directories(${PHONON_INCLUDES})
91   endif(HAVE_PHONON)
92 endif(HAVE_KDE)
93
94 if (HAVE_DBUS)
95     set(SOURCES ${SOURCES} statusnotifieritem.cpp statusnotifieritemdbus.cpp dockmanagernotificationbackend.cpp)
96     qt_add_dbus_interface(DBUS ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
97     qt_add_dbus_interface(DBUS ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
98     qt_add_dbus_adaptor(DBUS ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
99 endif(HAVE_DBUS)
100
101 if(HAVE_SSL)
102   set(SOURCES ${SOURCES} sslinfodlg.cpp)
103   set(FORMS ${FORMS} sslinfodlg.ui)
104 endif(HAVE_SSL)
105
106 if(INDICATEQT_FOUND)
107   set(SOURCES ${SOURCES} indicatornotificationbackend.cpp)
108   set(FORMS ${FORMS} indicatornotificationconfigwidget.ui)
109   include_directories(${INDICATEQT_INCLUDE_DIRS})
110 endif(INDICATEQT_FOUND)
111
112 if(HAVE_NOTIFICATION_CENTER)
113   set(SOURCES ${SOURCES} osxnotificationbackend.mm)
114 endif()
115
116 foreach(FORM ${FORMS})
117   set(FORMPATH ${FORMPATH} ui/${FORM})
118 endforeach(FORM ${FORMS})
119
120 # handle settingspages
121 include(settingspages/settingspages.cmake)
122 foreach(SP ${SETTINGSPAGES})
123   set(SPSRC ${SPSRC} settingspages/${SP}settingspage.cpp)
124   set(SPFRM ${SPFRM} settingspages/${SP}settingspage.ui)
125 endforeach(SP ${SETTINGSPAGES})
126 foreach(SRC ${SP_SOURCES})
127   set(SPSRC ${SPSRC} settingspages/${SRC})
128 endforeach(SRC ${SP_SOURCES})
129 foreach(FRM ${SP_FORMS})
130   set(SPFRM ${SPFRM} settingspages/${FRM})
131 endforeach(FRM ${SP_FORMS})
132
133 include_directories(${CMAKE_SOURCE_DIR}/src/common
134                     ${CMAKE_SOURCE_DIR}/src/client
135                     ${CMAKE_SOURCE_DIR}/src/qtui
136                     ${CMAKE_SOURCE_DIR}/src/qtui/settingspages
137                     ${CMAKE_SOURCE_DIR}/src/uisupport
138
139 )
140
141 qt_wrap_ui(UI ${FORMPATH} ${SPFRM})
142
143 if (USE_QT5)
144     list(APPEND qt_modules Widgets)
145 endif()
146
147 if (HAVE_DBUS)
148     list(APPEND qt_modules DBus)
149 endif()
150
151 if (HAVE_WEBKIT)
152     list(APPEND qt_modules Webkit XmlPatterns)
153 endif()
154
155 add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${DBUS} ${UI})
156 qt_use_modules(mod_qtui Core Gui Network ${qt_modules})
157
158 add_dependencies(mod_qtui mod_common mod_client mod_uisupport)