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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
pkg_data_dir = get_option('prefix') / get_option('datadir') / 'libgnomekbd'
icons_dir = pkg_data_dir / 'icons'
pkg = import('pkgconfig')
install_data(
'kbdled-caps-lock.svg',
'kbdled-num-lock.svg',
'kbdled-scroll-lock.svg',
install_dir: icons_dir
)
gsettings_cfg = configuration_data()
gsettings_cfg.set('GETTEXT_PACKAGE', gettext_domain)
gsettings_files = files(
'org.gnome.libgnomekbd.desktop.gschema.xml.in',
'org.gnome.libgnomekbd.keyboard.gschema.xml.in',
'org.gnome.libgnomekbd.gschema.xml.in',
)
foreach gsettings_file : gsettings_files
configure_file(
input: gsettings_file,
output: '@BASENAME@',
configuration: gsettings_cfg,
install: true,
install_dir: get_option('prefix') / get_option('datadir') / 'glib-2.0' / 'schemas'
)
endforeach
libgnomekbd_deps = [
glib_dep,
gobject_dep,
gio_dep,
gdk_dep,
gtk_dep,
x11_dep,
libxklavier_dep,
]
libgnomekbd_sources = files(
'gkbd-desktop-config.c',
'gkbd-keyboard-config.c',
'gkbd-util.c',
)
libgnomekbd_headers = files(
'gkbd-desktop-config.h',
'gkbd-keyboard-config.h',
'gkbd-util.h',
)
libgnomekbd_lib = library(
'gnomekbd',
libgnomekbd_sources,
config_h,
dependencies: libgnomekbd_deps,
include_directories: root_include,
version: library_version,
install: true,
)
pkg.generate(
libgnomekbd_lib,
name: 'libgnomekbd',
description: 'GNOME keyboard shared library',
version: meson.project_version(),
)
libgnomekbd_dep = declare_dependency(
link_with: libgnomekbd_lib,
include_directories: root_include,
dependencies: libgnomekbd_deps,
sources: config_h,
)
libgnomekbdui_sources = files(
'gkbd-configuration.c',
'gkbd-keyboard-drawing.c',
)
libgnomekbdui_headers = files(
'gkbd-configuration.h',
'gkbd-keyboard-drawing.h',
)
gkbd_keyboard_drawing_marshal = gnome.genmarshal(
'gkbd-keyboard-drawing-marshal',
prefix: 'gkbd_keyboard_drawing',
sources: 'gkbd-keyboard-drawing-marshal.list',
)
libgnomekbdui_deps = [
libgnomekbd_dep,
m_dep,
]
libgnomekbdui_lib = library(
'gnomekbdui',
libgnomekbdui_sources,
'gkbd-keyboard-drawing-private.h',
config_h,
gkbd_keyboard_drawing_marshal,
dependencies: libgnomekbdui_deps,
include_directories: root_include,
version: library_version,
c_args: [
'-DDATADIR="@0@"'.format(pkg_data_dir),
'-DICONSDIR="@0@"'.format(icons_dir),
],
install: true,
)
pkg.generate(
libgnomekbdui_lib,
name: 'libgnomekbdui',
description: 'GNOME keyboard shared library',
version: meson.project_version(),
)
libgnomekbdui_dep = declare_dependency(
link_with: libgnomekbdui_lib,
include_directories: root_include,
dependencies: libgnomekbdui_deps,
sources: [config_h, gkbd_keyboard_drawing_marshal],
)
install_headers(
libgnomekbd_headers,
libgnomekbdui_headers,
subdir: 'libgnomekbd',
)
install_data(
'libgnomekbd.convert',
install_dir: get_option('prefix') / get_option('datadir') / 'GConf' / 'gsettings'
)
if get_option('introspection')
gir_dir = join_paths(get_option('prefix') / get_option('datadir'), '@0@-@1@'.format('gir', gnomekbd_gir_version))
typelib_dir = join_paths(get_option('prefix') / get_option('libdir'), '@0@-@1@'.format('girepository', gnomekbd_gir_version))
gnome.generate_gir(
libgnomekbd_lib, libgnomekbdui_lib,
sources: [
libgnomekbd_sources,
libgnomekbdui_sources,
libgnomekbd_headers,
libgnomekbdui_headers,
gkbd_keyboard_drawing_marshal,
],
dependencies: [ libgnomekbd_deps, m_dep ],
include_directories: root_include,
namespace: 'Gkbd',
nsversion: '3.0',
includes: ['GObject-2.0', 'Gtk-3.0', 'xlib-2.0', 'Xkl-1.0'],
install: true,
install_dir_gir: gir_dir,
install_dir_typelib: typelib_dir,
)
endif
|