]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/udev/meson.build
sd-json: make static analyzers shut up
[thirdparty/systemd.git] / src / udev / meson.build
CommitLineData
db9ecf05 1# SPDX-License-Identifier: LGPL-2.1-or-later
3a726fcd 2
f1b98127 3udevadm_sources = files(
f1b98127
ZJS
4 'udevadm-control.c',
5 'udevadm-hwdb.c',
6 'udevadm-info.c',
8b12a516 7 'udevadm-lock.c',
f1b98127
ZJS
8 'udevadm-monitor.c',
9 'udevadm-settle.c',
f1b98127 10 'udevadm-test-builtin.c',
2f7862cc 11 'udevadm-test.c',
f1b98127
ZJS
12 'udevadm-trigger.c',
13 'udevadm-util.c',
acdba85e 14 'udevadm-verify.c',
aa2b0d8d 15 'udevadm-wait.c',
2f7862cc 16 'udevadm.c',
81c32b1d 17 'udevd.c',
2f492a73 18)
5c23128d 19
b9acb507 20libudevd_core_sources = files(
2f7862cc 21 'net/link-config.c',
f1b98127 22 'udev-ctrl.c',
f1b98127 23 'udev-event.c',
0b76cc2f 24 'udev-format.c',
81c32b1d 25 'udev-manager.c',
f1b98127 26 'udev-node.c',
f1b98127 27 'udev-rules.c',
0b76cc2f 28 'udev-spawn.c',
f1b98127 29 'udev-watch.c',
987b90f9 30 'udev-worker.c',
f1b98127
ZJS
31 'udev-builtin-btrfs.c',
32 'udev-builtin-hwdb.c',
33 'udev-builtin-input_id.c',
34 'udev-builtin-keyboard.c',
2b5b25f1 35 'udev-builtin-net_driver.c',
f1b98127
ZJS
36 'udev-builtin-net_id.c',
37 'udev-builtin-net_setup_link.c',
38 'udev-builtin-path_id.c',
39 'udev-builtin-usb_id.c',
2f7862cc 40 'udev-builtin.c',
2f492a73 41)
5c23128d 42
349cc4a5 43if conf.get('HAVE_KMOD') == 1
b9acb507 44 libudevd_core_sources += files('udev-builtin-kmod.c')
5c23128d
ZJS
45endif
46
349cc4a5 47if conf.get('HAVE_BLKID') == 1
b9acb507 48 libudevd_core_sources += files('udev-builtin-blkid.c')
5c23128d
ZJS
49endif
50
349cc4a5 51if conf.get('HAVE_ACL') == 1
b9acb507 52 libudevd_core_sources += files('udev-builtin-uaccess.c')
5c23128d
ZJS
53endif
54
55############################################################
56
57generate_keyboard_keys_list = find_program('generate-keyboard-keys-list.sh')
58keyboard_keys_list_txt = custom_target(
37efbbd8
ZJS
59 'keyboard-keys-list.txt',
60 output : 'keyboard-keys-list.txt',
61 command : [generate_keyboard_keys_list, cpp],
62 capture : true)
5c23128d 63
1b833237 64generate_keyboard_keys_gperf = find_program('generate-keyboard-keys-gperf.sh')
5c23128d
ZJS
65fname = 'keyboard-keys-from-name.gperf'
66gperf_file = custom_target(
37efbbd8
ZJS
67 fname,
68 input : keyboard_keys_list_txt,
69 output : fname,
1b833237 70 command : [generate_keyboard_keys_gperf, '@INPUT@'],
37efbbd8 71 capture : true)
5c23128d
ZJS
72
73fname = 'keyboard-keys-from-name.h'
74keyboard_keys_from_name_h = custom_target(
37efbbd8
ZJS
75 fname,
76 input : gperf_file,
77 output : fname,
78 command : [gperf,
8ff213fd 79 '-L', 'ANSI-C', '-t',
37efbbd8
ZJS
80 '-N', 'keyboard_lookup_key',
81 '-H', 'hash_key_name',
82 '-p', '-C',
83 '@INPUT@'],
84 capture : true)
5c23128d
ZJS
85
86############################################################
87
cbc55c4c
YW
88udev_link_gperf_gperf = files('net/link-config-gperf.gperf')
89
5c23128d 90link_config_gperf_c = custom_target(
37efbbd8 91 'link-config-gperf.c',
cbc55c4c 92 input : udev_link_gperf_gperf,
37efbbd8
ZJS
93 output : 'link-config-gperf.c',
94 command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
5c23128d
ZJS
95
96############################################################
97
3a30f21f 98if get_option('link-udev-shared')
1aec3ed9 99 udev_link_with = [libshared]
b0d3095f 100 udev_rpath = pkglibdir
3a30f21f 101else
1aec3ed9 102 udev_link_with = [libshared_static,
37e4d7a8 103 libsystemd_static]
1aec3ed9 104 udev_rpath = ''
3a30f21f
ZJS
105endif
106
e4b127e2
YW
107############################################################
108
e4b127e2 109libudevd_core = static_library(
37efbbd8 110 'udev-core',
e4b127e2 111 libudevd_core_sources,
37efbbd8
ZJS
112 link_config_gperf_c,
113 keyboard_keys_from_name_h,
d287ece7 114 include_directories : includes + include_directories('net'),
1aec3ed9 115 link_with : udev_link_with,
03f7ddf0 116 dependencies : [libblkid,
1d98716e 117 libkmod_cflags,
92148283 118 userspace],
03f7ddf0 119 build_by_default : false)
3a30f21f 120
130c87b1
YW
121udev_dependencies = [
122 libacl,
123 libblkid,
130c87b1
YW
124 libkmod,
125 threads,
126]
127
adedcd39
YW
128udev_plugin_template = executable_template + {
129 'public' : true,
130 'link_with' : udev_link_with,
131 'install_rpath' : udev_rpath,
132 'install_dir' : udevlibexecdir,
133}
134
130c87b1
YW
135udev_common_template = {
136 'link_with' : [
137 libshared,
138 libudevd_core,
139 ],
140 'dependencies' : [
141 libacl,
142 threads,
143 ],
144}
145udev_test_template = test_template + udev_common_template
cbc55c4c 146udev_fuzz_template = fuzz_template + udev_common_template
130c87b1 147
5371c269
YW
148executables += [
149 executable_template + {
150 'name' : 'udevadm',
151 'public' : true,
152 'sources' : udevadm_sources,
153 'link_with' : [libudevd_core],
130c87b1 154 'dependencies' : udev_dependencies,
5371c269
YW
155 'install_rpath' : udev_rpath,
156 },
adedcd39
YW
157 udev_plugin_template + {
158 'name' : 'ata_id',
159 'sources' : files('ata_id/ata_id.c'),
160 },
161 udev_plugin_template + {
162 'name' : 'cdrom_id',
163 'sources' : files('cdrom_id/cdrom_id.c'),
164 },
165 udev_plugin_template + {
166 'name' : 'dmi_memory_id',
167 'conditions' : ['HAVE_DMI'],
168 'sources' : files('dmi_memory_id/dmi_memory_id.c'),
169 },
170 udev_plugin_template + {
171 'name' : 'fido_id',
172 'sources' : files(
173 'fido_id/fido_id.c',
174 'fido_id/fido_id_desc.c',
175 ),
176 },
177 udev_plugin_template + {
178 'name' : 'iocost',
179 'sources' : files('iocost/iocost.c'),
180 },
181 udev_plugin_template + {
182 'name' : 'mtd_probe',
183 'sources' : files(
184 'mtd_probe/mtd_probe.c',
185 'mtd_probe/probe_smartmedia.c',
186 ),
187 },
188 udev_plugin_template + {
189 'name' : 'scsi_id',
190 'sources' : files(
191 'scsi_id/scsi_id.c',
192 'scsi_id/scsi_serial.c',
193 ),
194 },
195 udev_plugin_template + {
196 'name' : 'v4l_id',
197 'sources' : files('v4l_id/v4l_id.c'),
198 },
130c87b1
YW
199 test_template + {
200 'sources' : files(
201 'fido_id/test-fido-id-desc.c',
202 'fido_id/fido_id_desc.c',
203 ),
204 'suite' : 'udev',
205 },
d287ece7
YW
206 udev_test_template + {
207 'sources' : files('net/test-link-config-tables.c'),
089bef66 208 'include_directories' : includes + include_directories('.'),
d287ece7
YW
209 'suite' : 'udev',
210 },
130c87b1
YW
211 udev_test_template + {
212 'sources' : files('test-udev-builtin.c'),
213 },
214 udev_test_template + {
215 'sources' : files('test-udev-format.c'),
216 },
217 udev_test_template + {
218 'sources' : files('test-udev-manager.c'),
219 },
220 udev_test_template + {
221 'sources' : files('test-udev-node.c'),
222 },
223 udev_test_template + {
224 'sources' : files('test-udev-rule-runner.c'),
225 'dependencies' : udev_dependencies + [
226 libselinux,
227 ],
228 'type' : 'manual',
229 },
230 udev_test_template + {
231 'sources' : files('test-udev-rules.c'),
232 },
233 udev_test_template + {
234 'sources' : files('test-udev-spawn.c'),
235 },
cbc55c4c
YW
236 fuzz_template + {
237 'sources' : files(
238 'fido_id/fuzz-fido-id-desc.c',
239 'fido_id/fido_id_desc.c',
240 ),
241 },
242 udev_fuzz_template + {
243 'sources' : files('net/fuzz-link-parser.c'),
089bef66 244 'include_directories' : includes + include_directories('.'),
cbc55c4c
YW
245 },
246 udev_fuzz_template + {
247 'sources' : files('fuzz-udev-rule-parse-value.c'),
248 },
249 udev_fuzz_template + {
250 'sources' : files('fuzz-udev-rules.c'),
251 },
5371c269
YW
252]
253
9289e093
YW
254meson.add_install_script(sh, '-c', ln_s.format(bindir / 'udevadm',
255 libexecdir / 'systemd-udevd'))
5371c269 256
225d08b8 257if install_sysconfdir_samples
d7aa78c3 258 install_data('udev.conf',
6495361c 259 install_dir : configfiledir / 'udev')
6b8e9054 260 install_data('iocost/iocost.conf',
6495361c 261 install_dir : configfiledir / 'udev')
d7aa78c3 262endif
5c23128d 263
d30d9bf0 264udev_pc = custom_target(
94e41ec0 265 'udev.pc',
37efbbd8
ZJS
266 input : 'udev.pc.in',
267 output : 'udev.pc',
8f04a1ca 268 command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
94e41ec0 269 install : pkgconfigdatadir != 'no',
d30d9bf0 270 install_tag : 'devel',
94e41ec0 271 install_dir : pkgconfigdatadir)
94e75a54 272
d7aa78c3 273if install_sysconfdir
9289e093 274 install_emptydir(sysconfdir / 'udev/rules.d')
d7aa78c3 275endif