]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/udev/meson.build
Merge pull request #22983 from yuwata/login-use-symlinks-under-static_node-tags
[thirdparty/systemd.git] / src / udev / meson.build
CommitLineData
db9ecf05 1# SPDX-License-Identifier: LGPL-2.1-or-later
3a726fcd 2
f1b98127
ZJS
3udevadm_sources = files(
4 'udevadm.c',
5 'udevadm.h',
6 'udevadm-control.c',
7 'udevadm-hwdb.c',
8 'udevadm-info.c',
8b12a516 9 'udevadm-lock.c',
f1b98127
ZJS
10 'udevadm-monitor.c',
11 'udevadm-settle.c',
12 'udevadm-test.c',
13 'udevadm-test-builtin.c',
14 'udevadm-trigger.c',
15 'udevadm-util.c',
16 'udevadm-util.h',
aa2b0d8d 17 'udevadm-wait.c',
2f492a73
ZJS
18 'udevd.c',
19)
5c23128d 20
b9acb507 21libudevd_core_sources = files(
f1b98127
ZJS
22 'udev-ctrl.c',
23 'udev-ctrl.h',
24 'udev-event.c',
25 'udev-event.h',
26 'udev-node.c',
27 'udev-node.h',
28 'udev-rules.c',
29 'udev-rules.h',
30 'udev-watch.c',
31 'udev-watch.h',
32 'udev-builtin.c',
33 'udev-builtin.h',
34 'udev-builtin-btrfs.c',
35 'udev-builtin-hwdb.c',
36 'udev-builtin-input_id.c',
37 'udev-builtin-keyboard.c',
38 'udev-builtin-net_id.c',
39 'udev-builtin-net_setup_link.c',
40 'udev-builtin-path_id.c',
41 'udev-builtin-usb_id.c',
42 'udev-netlink.c',
43 'udev-netlink.h',
44 'net/link-config.c',
2f492a73
ZJS
45 'net/link-config.h',
46)
5c23128d 47
349cc4a5 48if conf.get('HAVE_KMOD') == 1
b9acb507 49 libudevd_core_sources += files('udev-builtin-kmod.c')
5c23128d
ZJS
50endif
51
349cc4a5 52if conf.get('HAVE_BLKID') == 1
b9acb507 53 libudevd_core_sources += files('udev-builtin-blkid.c')
5c23128d
ZJS
54endif
55
349cc4a5 56if conf.get('HAVE_ACL') == 1
b9acb507 57 libudevd_core_sources += files('udev-builtin-uaccess.c')
5c23128d
ZJS
58endif
59
60############################################################
61
62generate_keyboard_keys_list = find_program('generate-keyboard-keys-list.sh')
63keyboard_keys_list_txt = custom_target(
37efbbd8
ZJS
64 'keyboard-keys-list.txt',
65 output : 'keyboard-keys-list.txt',
66 command : [generate_keyboard_keys_list, cpp],
67 capture : true)
5c23128d 68
1b833237 69generate_keyboard_keys_gperf = find_program('generate-keyboard-keys-gperf.sh')
5c23128d
ZJS
70fname = 'keyboard-keys-from-name.gperf'
71gperf_file = custom_target(
37efbbd8
ZJS
72 fname,
73 input : keyboard_keys_list_txt,
74 output : fname,
1b833237 75 command : [generate_keyboard_keys_gperf, '@INPUT@'],
37efbbd8 76 capture : true)
5c23128d
ZJS
77
78fname = 'keyboard-keys-from-name.h'
79keyboard_keys_from_name_h = custom_target(
37efbbd8
ZJS
80 fname,
81 input : gperf_file,
82 output : fname,
83 command : [gperf,
8ff213fd 84 '-L', 'ANSI-C', '-t',
37efbbd8
ZJS
85 '-N', 'keyboard_lookup_key',
86 '-H', 'hash_key_name',
87 '-p', '-C',
88 '@INPUT@'],
89 capture : true)
5c23128d
ZJS
90
91############################################################
92
93link_config_gperf_c = custom_target(
37efbbd8
ZJS
94 'link-config-gperf.c',
95 input : 'net/link-config-gperf.gperf',
96 output : 'link-config-gperf.c',
97 command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
5c23128d
ZJS
98
99############################################################
100
3a30f21f 101if get_option('link-udev-shared')
1aec3ed9
ZJS
102 udev_link_with = [libshared]
103 udev_rpath = rootlibexecdir
3a30f21f 104else
1aec3ed9 105 udev_link_with = [libshared_static,
37e4d7a8 106 libsystemd_static]
1aec3ed9 107 udev_rpath = ''
3a30f21f
ZJS
108endif
109
e4b127e2
YW
110############################################################
111
8d40961c 112udev_includes = [includes, include_directories('net', '.')]
e4b127e2 113libudevd_core = static_library(
37efbbd8 114 'udev-core',
e4b127e2 115 libudevd_core_sources,
37efbbd8
ZJS
116 link_config_gperf_c,
117 keyboard_keys_from_name_h,
8d40961c 118 include_directories : udev_includes,
1aec3ed9 119 link_with : udev_link_with,
03f7ddf0
ZJS
120 dependencies : [libblkid,
121 libkmod],
122 build_by_default : false)
3a30f21f 123
0b5f1bd4
ZJS
124udev_progs = [['ata_id/ata_id.c'],
125 ['cdrom_id/cdrom_id.c'],
126 ['fido_id/fido_id.c',
127 'fido_id/fido_id_desc.c',
128 'fido_id/fido_id_desc.h'],
129 ['scsi_id/scsi_id.c',
130 'scsi_id/scsi_id.h',
131 'scsi_id/scsi_serial.c',
132 'scsi_id/scsi.h'],
133 ['v4l_id/v4l_id.c'],
134 ['mtd_probe/mtd_probe.c',
135 'mtd_probe/mtd_probe.h',
136 'mtd_probe/probe_smartmedia.c']]
3a30f21f 137
ff6d2869 138dmi_arches = ['x86', 'x86_64', 'aarch64', 'arm', 'ia64', 'loongarch64', 'mips']
2bfb92a9 139if dmi_arches.contains(host_machine.cpu_family())
0b5f1bd4 140 udev_progs += [['dmi_memory_id/dmi_memory_id.c']]
2bfb92a9
BN
141endif
142
0b5f1bd4
ZJS
143udev_prog_paths = {}
144foreach prog : udev_progs
2b7b142e
ZJS
145 name = prog[0].split('/')[0]
146
147 exe = executable(
148 name,
149 prog,
150 include_directories : includes,
0b5f1bd4 151 dependencies : versiondep,
2b7b142e
ZJS
152 link_with : udev_link_with,
153 install_rpath : udev_rpath,
154 install : true,
155 install_dir : udevlibexecdir)
156
e93ada98 157 udev_prog_paths += {name : exe}
3a30f21f 158endforeach
5c23128d 159
225d08b8 160if install_sysconfdir_samples
d7aa78c3 161 install_data('udev.conf',
fce9abb2 162 install_dir : sysconfdir / 'udev')
d7aa78c3 163endif
5c23128d 164
94e41ec0
ZJS
165custom_target(
166 'udev.pc',
37efbbd8
ZJS
167 input : 'udev.pc.in',
168 output : 'udev.pc',
8f04a1ca 169 command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
94e41ec0
ZJS
170 install : pkgconfigdatadir != 'no',
171 install_dir : pkgconfigdatadir)
94e75a54 172
d7aa78c3
JT
173if install_sysconfdir
174 meson.add_install_script('sh', '-c',
fce9abb2 175 mkdir_p.format(sysconfdir / 'udev/rules.d'))
d7aa78c3 176endif
a378400b
YW
177
178fuzzers += [
bbec46c8 179 [files('net/fuzz-link-parser.c'),
e4b127e2 180 [libudevd_core,
a378400b
YW
181 libshared],
182 [threads,
8d40961c
YW
183 libacl],
184 udev_includes],
9648956d 185
bbec46c8 186 [files('fuzz-udev-rules.c'),
e025c9df
YW
187 [libudevd_core,
188 libshared],
189 [threads,
190 libacl]],
191
bbec46c8 192 [files('fuzz-udev-rule-parse-value.c')],
e025c9df 193
bbec46c8
JJ
194 [files('fido_id/fuzz-fido-id-desc.c',
195 'fido_id/fido_id_desc.c')],
5acb3cab 196]
9648956d
YW
197
198tests += [
e1eeebbb 199 [files('test-udev-event.c'),
ac714078
YW
200 [libudevd_core,
201 libshared],
202 [threads,
203 libacl]],
204
e1eeebbb 205 [files('test-udev-node.c'),
52fde280
YW
206 [libudevd_core,
207 libshared],
208 [threads,
209 libacl]],
210
e1eeebbb 211 [files('test-udev-builtin.c'),
71c163c9
ZJS
212 [libudevd_core,
213 libshared],
214 [threads,
215 libacl]],
216
e1eeebbb
JJ
217 [files('test-udev-netlink.c',
218 'udev-netlink.c',
219 'udev-netlink.h')],
8327fd1b 220
e1eeebbb
JJ
221 [files('fido_id/test-fido-id-desc.c',
222 'fido_id/fido_id_desc.c')],
5acb3cab 223]