Convert XMPP console dialogs to popovers.
[pidgin-git.git] / libpurple / meson.build
blobe9cb585be0013688f9e883e3a7f6e6191fee2baa
1 purple_coresources = [
2         'account.c',
3         'accounts.c',
4         'accountopt.c',
5         'action.c',
6         'attention.c',
7         'blistnode.c',
8         'buddy.c',
9         'buddylist.c',
10         'buddyicon.c',
11         'chat.c',
12         'circularbuffer.c',
13         'cmds.c',
14         'connection.c',
15         'contact.c',
16         'conversation.c',
17         'conversationtypes.c',
18         'conversations.c',
19         'core.c',
20         'countingnode.c',
21         'debug.c',
22         'e2ee.c',
23         'eventloop.c',
24         'group.c',
25         'http.c',
26         'idle.c',
27         'image.c',
28         'image-store.c',
29         'keyring.c',
30         'log.c',
31         'media/backend-iface.c',
32         'media/candidate.c',
33         'media/codec.c',
34         'media/enum-types.c',
35         'media.c',
36         'mediamanager.c',
37         'memorypool.c',
38         'message.c',
39         'nat-pmp.c',
40         'network.c',
41         'notify.c',
42         'options.c',
43         'plugins.c',
44         'pluginpref.c',
45         'pounce.c',
46         'prefs.c',
47         'presence.c',
48         'proxy.c',
49         'protocol.c',
50         'protocols.c',
51         'purple-gio.c',
52         'queuedoutputstream.c',
53         'request.c',
54         'request-datasheet.c',
55         'roomlist.c',
56         'savedstatuses.c',
57         'server.c',
58         'signals.c',
59         'smiley-custom.c',
60         'smiley-list.c',
61         'smiley-parser.c',
62         'smiley-theme.c',
63         'smiley.c',
64         'status.c',
65         'stringref.c',
66         'stun.c',
67         'sound.c',
68         'sound-theme.c',
69         'sound-theme-loader.c',
70         'sslconn.c',
71         'theme.c',
72         'theme-loader.c',
73         'theme-manager.c',
74         'trie.c',
75         'upnp.c',
76         'util.c',
77         'version.c',
78         'whiteboard.c',
79         'xfer.c',
80         'xmlnode.c'
83 purple_coreheaders = [
84         'account.h',
85         'accounts.h',
86         'accountopt.h',
87         'action.h',
88         'attention.h',
89         'blistnode.h',
90         'buddy.h',
91         'buddylist.h',
92         'buddyicon.h',
93         'chat.h',
94         'circularbuffer.h',
95         'cmds.h',
96         'connection.h',
97         'contact.h',
98         'conversation.h',
99         'conversationtypes.h',
100         'conversations.h',
101         'core.h',
102         'countingnode.h',
103         'debug.h',
104         'e2ee.h',
105         'eventloop.h',
106         'group.h',
107         'http.h',
108         'idle.h',
109         'image.h',
110         'image-store.h',
111         'keyring.h',
112         'log.h',
113         'media.h',
114         'mediamanager.h',
115         'memorypool.h',
116         'message.h',
117         'nat-pmp.h',
118         'network.h',
119         'notify.h',
120         'options.h',
121         'plugins.h',
122         'pluginpref.h',
123         'pounce.h',
124         'prefs.h',
125         'presence.h',
126         'proxy.h',
127         'protocol.h',
128         'protocols.h',
129         'purple-gio.h',
130         'queuedoutputstream.h',
131         'request.h',
132         'request-datasheet.h',
133         'roomlist.h',
134         'savedstatuses.h',
135         'server.h',
136         'signals.h',
137         'smiley-custom.h',
138         'smiley-list.h',
139         'smiley-parser.h',
140         'smiley-theme.h',
141         'smiley.h',
142         'status.h',
143         'stringref.h',
144         'stun.h',
145         'sound.h',
146         'sound-theme.h',
147         'sound-theme-loader.h',
148         'sslconn.h',
149         'tests.h',
150         'theme.h',
151         'theme-loader.h',
152         'theme-manager.h',
153         'trie.h',
154         'upnp.h',
155         'util.h',
156         'whiteboard.h',
157         'xfer.h',
158         'xmlnode.h',
161 purple_filebase = 'purple-@0@'.format(purple_major_version)
162 purple_include_base = join_paths(purple_filebase, 'libpurple')
164 if enable_gst
165         purple_coresources += 'media/backend-fs2.c'
166 endif
167 if enable_vv
168         purple_coreheaders += 'media-gst.h'
169 endif
171 if IS_WIN32
172         purple_coresources += [
173                 'win32/libc_interface.c',
174                 'win32/win32dep.c'
175         ]
177         purple_coreheaders += [
178                 'win32/libc_interface.h',
179                 'win32/libc_internal.h',
180                 'win32/win32dep.h',
181                 'win32/wpurpleerror.h'
182         ]
184         libpurplerc = configure_file(
185             input : 'win32/libpurplerc.rc.in',
186             output : 'libpurplerc.rc',
187             configuration : version_conf)
188         purple_coresources += windows.compile_resources(libpurplerc)
189 endif
191 purple_mediaheaders = [
192         'media/backend-iface.h',
193         'media/candidate.h',
194         'media/codec.h',
195         'media/enum-types.h'
198 purple_enumheaders = [
199         'account.h',
200         'buddyicon.h',
201         'connection.h',
202         'conversation.h',
203         'conversationtypes.h',
204         'debug.h',
205         'eventloop.h',
206         'notify.h',
207         'plugins.h',
208         'protocol.h',
209         'protocols.h',
210         'roomlist.h',
211         'status.h',
212         'sound.h',
213         'xfer.h',
214         'xmlnode.h'
218 enums = gnome.mkenums('enums',
219     sources : purple_enumheaders,
220     h_template : 'enums.h.in',
221     c_template : 'enums.c.in',
222     install_header : true,
223     install_dir : join_paths(get_option('includedir'), purple_include_base))
224 enums_c = enums[0]
225 enums_h = enums[1]
227 PURPLE_H_INCLUDES = []
228 foreach header : purple_coreheaders + purple_mediaheaders + ['version.h', 'enums.h']
229         PURPLE_H_INCLUDES += '#include <libpurple/@0@>'.format(header)
230 endforeach
231 purple_h_conf = configuration_data()
232 purple_h_conf.set('PURPLE_H_INCLUDES', '\n'.join(PURPLE_H_INCLUDES))
234 purple_h = configure_file(input : 'purple.h.in',
235                           output : 'purple.h',
236                           configuration : purple_h_conf,
237                           install : true,
238                           install_dir : join_paths(get_option('includedir'),
239                                                    purple_filebase))
240 version_h = configure_file(input : 'version.h.in',
241                            output : 'version.h',
242                            configuration : version_conf,
243                            install : true,
244                            install_dir : join_paths(get_option('includedir'),
245                                                     purple_include_base))
247 purple_builtsources = [
248         enums_c,
251 purple_builtheaders = [
252         purple_h,
253         version_h,
254         enums_h,
257 libpurple_inc = include_directories('.')
258 libpurple = library('purple',
259                     purple_coresources + purple_builtsources +
260                     purple_builtheaders,
261                     include_directories : [toplevel_inc, libpurple_inc],
262                     install : true,
263                     version : PURPLE_LIB_VERSION,
264                     dependencies : # static_link_libs
265                         [dnsapi, ws2_32, glib, gio, gplugin_dep, libxml,
266                          farstream, gstreamer, gstreamer_video,
267                          gstreamer_app, json, math])
269 libpurple_dep = declare_dependency(
270     # Ensure purple headers built before any dependencies:
271     sources : [purple_builtheaders],
272     include_directories : [toplevel_inc, libpurple_inc],
273     link_with : libpurple,
274     dependencies : [gstreamer, gplugin_dep, glib, gio])
276 install_headers(purple_coreheaders,
277                 subdir : purple_include_base)
279 install_headers(purple_mediaheaders,
280                 subdir : join_paths(purple_include_base, 'media'))
282 pkgconfig.generate(
283     name : 'libpurple',
284     description : 'libpurple is a GLib-based instant messenger library.',
285     version : meson.project_version(),
286     filebase : purple_filebase,
287 # TODO: Only use purple_filebase once everything is ported to only use purple.h
288     subdirs : [purple_filebase, purple_include_base],
289     libraries : [libpurple],
290     requires : ['glib-2.0', 'gplugin'],
291     variables : ['plugindir=${libdir}/@0@'.format(purple_filebase)])
293 if enable_introspection
294         introspection_sources = (purple_coreheaders + purple_builtheaders +
295                                  purple_mediaheaders)
297         Purple_gir_includes = ['GObject-2.0', 'Gio-2.0', gplugin_gir]
298         if enable_gst
299                 Purple_gir_includes += ['Gst-1.0']
300         endif
302         libpurple_gir = gnome.generate_gir(libpurple,
303             sources : introspection_sources,
304             includes : Purple_gir_includes,
305             namespace : 'Purple',
306             symbol_prefix : 'purple',
307             identifier_prefix : 'Purple',
308             export_packages : purple_filebase,
309             nsversion : '@0@.@1@'.format(purple_major_version,
310                                          purple_minor_version),
311             include_directories : [
312                 gplugin_include_directories,
313             ],
314             install : true,
315             extra_args : ['--quiet'])
316 endif
318 subdir('tests')
319 subdir('example')
320 subdir('plugins')
321 subdir('protocols')