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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
libgdm_manager_dbus_gen = gnome.gdbus_codegen('gdm-manager-glue',
sources: '..' / 'daemon' / 'gdm-manager.xml',
namespace: 'Gdm',
interface_prefix: 'org.gnome.DisplayManager',
autocleanup: 'all',
annotations: [
[ 'org.gnome.DisplayManager.Manager', 'org.gtk.GDBus.C.Name', 'Manager' ],
],
build_by_default: true,
)
libgdm_client_dbus_gen = gnome.gdbus_codegen('gdm-client-glue',
sources: '..' / 'daemon' / 'gdm-session.xml',
namespace: 'Gdm',
interface_prefix: 'org.gnome.DisplayManager',
autocleanup: 'all',
annotations: [
[ 'org.gnome.DisplayManager.UserVerifier', 'org.gtk.GDBus.C.Name', 'UserVerifier' ],
[ 'org.gnome.DisplayManager.Greeter', 'org.gtk.GDBus.C.Name', 'Greeter' ],
[ 'org.gnome.DisplayManager.RemoteGreeter', 'org.gtk.GDBus.C.Name', 'RemoteGreeter' ],
[ 'org.gnome.DisplayManager.Chooser', 'org.gtk.GDBus.C.Name', 'Chooser' ],
],
build_by_default: true,
install_header: true,
install_dir: get_option('includedir') / meson.project_name()
)
libgdm_built_sources = [
libgdm_manager_dbus_gen,
libgdm_client_dbus_gen,
]
libgdm_sources = files(
'gdm-client.c',
'gdm-sessions.c',
'gdm-user-switching.c',
)
libgdm_public_headers = [
'gdm-client.h',
'gdm-sessions.h',
'gdm-user-switching.h',
# gdm-client-glue.h is automatically installed
]
install_headers(libgdm_public_headers,
subdir: meson.project_name(),
)
libgdm_headers = [
libgdm_public_headers,
libgdm_client_dbus_gen[1],
libgdm_manager_dbus_gen[1],
]
libgdm_deps = [
glib_dep,
gio_dep,
gio_unix_dep,
libsystemd_dep,
libgdmcommon_dep,
]
libgdm_link_flags = [
'-Wl,--version-script,@0@/libgdm.map'.format(meson.current_source_dir()),
]
libgdm = library('gdm',
libgdm_sources + libgdm_built_sources,
version: '1.0.0',
dependencies: libgdm_deps,
include_directories: config_h_dir,
link_args: libgdm_link_flags,
install: true,
)
libgdm_gir_includes = [
'GLib-2.0',
'GObject-2.0',
'Gio-2.0',
]
libgdm_dep = declare_dependency(
link_with: libgdm,
dependencies: libgdm_deps,
include_directories: include_directories('.'),
sources: libgdm_built_sources,
)
libgdm_gir = gnome.generate_gir(libgdm,
sources: libgdm_headers + libgdm_sources,
namespace: 'Gdm',
nsversion: '1.0',
identifier_prefix: 'Gdm',
includes: libgdm_gir_includes,
install: true,
)
# Pkg-config file
pkgconfig.generate(libgdm,
name: 'GDM Client Library',
description: 'Client Library for communicating with GDM daemon',
filebase: meson.project_name(),
requires: gobject_dep,
)
|