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
|
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2021 Iñigo Martinez <inigomartinez@gmail.com>
generated_inc = include_directories('.')
generated_build_dir = meson.current_build_dir()
common_c_args = cc.get_supported_arguments([
'-Wno-float-equal',
'-Wno-shadow',
'-Wno-unused-function',
])
gen_sources = []
gen_headers = []
gen_docs = []
# Enum types
enums_types = 'mm-enums-types'
gen_sources += gnome.mkenums(
enums_types + '.c',
sources: mm_enums_header,
c_template: build_aux_dir / enums_types + '.c.template',
fhead: '#include "mm-enums-types.h"\n',
)
gen_headers += gnome.mkenums(
enums_types + '.h',
sources: mm_enums_header,
h_template: build_aux_dir / enums_types + '.h.template',
fhead: '#include <ModemManager.h>\n#ifndef __MM_ENUMS_TYPES_H__\n#define __MM_ENUMS_TYPES_H__\n',
ftail: '#endif /* __MM_ENUMS_TYPES_H__ */\n',
install_header: true,
install_dir: mm_glib_pkgincludedir,
)
# Error types & quarks
errors_types = 'mm-errors-types'
gen_sources += gnome.mkenums(
enums_types + '.c',
sources: mm_errors_header,
c_template: build_aux_dir / errors_types + '.c.template',
fhead: '#include <ModemManager.h>\n#include "mm-errors-types.h"\n',
)
gen_headers += gnome.mkenums(
errors_types + '.h',
sources: mm_errors_header,
h_template: build_aux_dir / errors_types + '.h.template',
fhead: '#ifndef __MM_ERRORS_TYPES_H__\n#define __MM_ERRORS_TYPES_H__\n',
ftail: '#endif /* __MM_ERRORS_TYPES_H__ */\n',
install_header: true,
install_dir: mm_glib_pkgincludedir,
)
errors_quarks = 'mm-errors-quarks'
gen_sources += gnome.mkenums(
errors_quarks + '.c',
sources: mm_errors_header,
c_template: build_aux_dir / errors_quarks + '.c.template',
fhead: '#include <ModemManager.h>\n#include "mm-errors-types.h"\n',
)
gdbus_ifaces = [
['bearer', mm_ifaces_bearer, [], false],
['call', mm_ifaces_call, [], false],
['manager', mm_ifaces, [], false],
['sim', mm_ifaces_sim, [], false],
]
annotations = [
['org.freedesktop.ModemManager1.Modem.ModemCdma', 'org.gtk.GDBus.C.Name', 'ModemCdma'],
['org.freedesktop.ModemManager1.Modem.Modem3gpp', 'org.gtk.GDBus.C.Name', 'Modem3gpp'],
['org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd', 'org.gtk.GDBus.C.Name', 'Modem3gppUssd'],
['org.freedesktop.ModemManager1.Modem.Modem3gpp.ProfileManager', 'org.gtk.GDBus.C.Name', 'Modem3gppProfileManager'],
]
gdbus_ifaces += [['modem', mm_ifaces_modem, annotations, true]]
annotations = [['org.freedesktop.ModemManager1.Sms:Data', 'org.gtk.GDBus.C.ForceGVariant', 'True']]
gdbus_ifaces += [['sms', mm_ifaces_sms, annotations, false]]
foreach gdbus_iface: gdbus_ifaces
gdbus_sources = gnome.gdbus_codegen(
'mm-gdbus-' + gdbus_iface[0],
sources: gdbus_iface[1],
interface_prefix: 'org.freedesktop.ModemManager1.',
namespace: 'MmGdbus',
docbook: 'mm-gdbus-doc',
annotations: gdbus_iface[2],
object_manager: gdbus_iface[3],
autocleanup: 'objects',
# FIXME: due to the lack of possibility to add `docbook targets` to the `expand_content_files`.
build_by_default: true,
install_header: true,
install_dir: mm_glib_pkgincludedir,
)
gen_sources += gdbus_sources[0]
gen_headers += gdbus_sources[1]
# FIXME: the `expand_content_files` must be strings
gen_docs += gdbus_sources[2]
endforeach
deps = [
include_dep,
gio_unix_dep,
glib_deps,
]
libmm_generated = static_library(
'mm-generated',
sources: gen_sources + gen_headers,
include_directories: top_inc,
dependencies: deps,
c_args: common_c_args,
)
libmm_generated_dep = declare_dependency(
sources: gen_headers,
include_directories: generated_inc,
dependencies: glib_deps,
link_whole: libmm_generated,
)
subdir('tests')
|