1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
sources = files(
'gnome-settings-bus.c',
'gnome-settings-profile.c'
)
dbus_ifaces = [
['SessionManager', 'gsd-session-manager-glue'],
['ScreenSaver', 'gsd-screen-saver-glue'],
['Shell', 'gsd-shell-glue']
]
dbus_headers = []
codegen = find_program('codegen.py')
foreach iface: dbus_ifaces
name = 'org.gnome.' + iface[0]
# FIXME: Opaque target return from gdbus_codegen
# Please see:
# https://bugzilla.gnome.org/show_bug.cgi?id=791015
# https://github.com/mesonbuild/meson/pull/2930
'''
dbus_sources += gnome.gdbus_codegen(
iface[1],
name + '.xml',
interface_prefix: name + '.',
namespace: 'Gsd',
annotations: [name, 'org.gtk.GDBus.C.Name', iface[0]]
)
'''
# FIXME: Ugly workaround that simulates the generation of
# two different targets.
dbus_sources = custom_target(
iface[1],
input: name + '.xml',
output: [iface[1] + '.h', iface[1] + '.c'],
command: [codegen, iface[0], iface[1], meson.current_build_dir(), '@INPUT@', '@OUTPUT@']
)
dbus_headers += dbus_sources[0]
sources += dbus_sources[1]
endforeach
deps = [gio_unix_dep]
if enable_wayland
deps += wayland_client_dep
endif
libgsd = shared_library(
'gsd',
sources: sources + dbus_headers,
include_directories: top_inc,
dependencies: deps,
install: true,
install_dir: gsd_pkglibdir
)
libgsd_dep = declare_dependency(
sources: dbus_headers,
include_directories: include_directories('.'),
link_with: libgsd
)
|