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
|
libgudev_public_h = [
'gudev.h',
'gudevclient.h',
'gudevdevice.h',
'gudevenumerator.h',
'gudevenums.h',
'gudevtypes.h',
]
libgudev_private_h = [
'gudevprivate.h',
]
libgudev_sources = [
'gudevclient.c',
'gudevdevice.c',
'gudevenumerator.c',
]
libgudev_deps = [
glib_dep,
gobject_dep,
libudev_dep,
]
libgudev_c_args = [
'-DHAVE_CONFIG_H',
'-D_POSIX_PTHREAD_SEMANTICS',
'-D_REENTRANT',
'-D_GUDEV_COMPILATION',
'-D_GUDEV_WORK_AROUND_DEV_T_BUG',
'-DG_LOG_DOMAIN="GUdev"',
]
libgudev_link_args = [
'-export-dynamic',
'-Wl,--version-script,@0@/libgudev-1.0.sym'.format(top_srcdir),
]
libgudev_enums = gnome.mkenums(
'gudevenumtypes',
sources: libgudev_public_h,
h_template: 'gudevenumtypes.h.template',
c_template: 'gudevenumtypes.c.template',
install_header: true,
install_dir: join_paths(
pkgincludedir,
'gudev',
)
)
libgudev_enums_h = libgudev_enums.get(1)
libgudev_sources += [
libgudev_enums,
]
install_headers(
libgudev_public_h,
install_dir: join_paths(
pkgincludedir,
'gudev',
)
)
libgudev = library(
package_string,
libgudev_sources,
version: lib_version,
include_directories: rootdir,
dependencies: libgudev_deps,
c_args: libgudev_c_args,
link_args: libgudev_link_args,
install: true,
install_dir: libdir,
)
libgudev_dep = declare_dependency(
link_with: libgudev,
include_directories: rootdir,
dependencies: libgudev_deps,
sources: [
libgudev_enums_h,
]
)
pkg.generate(
name: package_string,
description: 'GObject bindings for libudev',
requires: ['glib-2.0', 'gobject-2.0'],
version: version,
subdirs: package_string,
libraries: libgudev,
install_dir: pkgconfigdir,
variables: [
'exec_prefix=${prefix}',
]
)
if introspection_dep.found()
libgudev_gir = gnome.generate_gir(
libgudev,
sources: libgudev_sources + libgudev_public_h,
nsversion: api_version,
namespace: 'GUdev',
symbol_prefix: 'g_udev',
identifier_prefix: 'GUdev',
header: 'gudev/gudev.h',
export_packages: [package_string],
includes: ['GObject-2.0'],
link_with: libgudev,
install: true,
install_dir_gir: girdir,
install_dir_typelib: typelibdir,
extra_args: [
'-D_GUDEV_COMPILATION',
'-D_GUDEV_WORK_AROUND_DEV_T_BUG',
]
)
if vapigen_dep.found()
libgudev_vapi = gnome.generate_vapi(
package_string,
sources: libgudev_gir.get(0),
install: true,
install_dir: vapidir,
packages: [
'gobject-2.0',
]
)
endif
endif
|