From af0a28854d24456e63e9634283ce4a9ffbed459c Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Tue, 14 Jan 2025 23:22:04 +0000 Subject: [PATCH] meson: add udev/hwdb build aliases Allows to do: meson compile libudev udev hwdb meson install --no-rebuild --tags libudev,udev,hwdb --- meson.build | 10 ++++++++++ rules.d/meson.build | 3 +++ src/udev/meson.build | 11 ++++++++++- units/meson.build | 11 ++++++++++- 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 6a7e76371ae..3e80f7ad6c2 100644 --- a/meson.build +++ b/meson.build @@ -2952,6 +2952,16 @@ custom_target('installed-unit-files.txt', ##################################################################### +udev_targets = [] +foreach bin : udev_binaries + udev_targets += executables_by_name.get(bin, []) +endforeach +alias_target('udev', buildable_rules, udev_targets, udev_units) + +if conf.get('ENABLE_HWDB') == 1 + alias_target('hwdb', auto_suspend_rules, executables_by_name.get('systemd-hwdb'), hwdb_units) +endif + alt_time_epoch = run_command('date', '-Is', '-u', '-d', '@@0@'.format(time_epoch), check : true).stdout().strip() diff --git a/rules.d/meson.build b/rules.d/meson.build index e8eb26c5753..85d314c35cc 100644 --- a/rules.d/meson.build +++ b/rules.d/meson.build @@ -45,6 +45,8 @@ rules = [ ] all_rules = [] +# For the udev alias +buildable_rules = [] foreach tuple : rules if tuple.length() == 1 or tuple[1] @@ -82,5 +84,6 @@ foreach tuple : rules_in if want all_rules += rule + buildable_rules += rule endif endforeach diff --git a/src/udev/meson.build b/src/udev/meson.build index cff396e0828..f008ea1f665 100644 --- a/src/udev/meson.build +++ b/src/udev/meson.build @@ -148,7 +148,7 @@ udev_common_template = { udev_test_template = test_template + udev_common_template udev_fuzz_template = fuzz_template + udev_common_template -executables += [ +udev_binaries_dict = [ executable_template + { 'name' : 'udevadm', 'public' : true, @@ -200,6 +200,15 @@ executables += [ 'name' : 'v4l_id', 'sources' : files('v4l_id/v4l_id.c'), }, +] +# For the udev alias +udev_binaries = [] +foreach binary : udev_binaries_dict + udev_binaries += binary.get('name') +endforeach + +executables += udev_binaries_dict +executables += [ test_template + { 'sources' : files( 'fido_id/test-fido-id-desc.c', diff --git a/units/meson.build b/units/meson.build index caae65fea0f..2f2a1d5fe9e 100644 --- a/units/meson.build +++ b/units/meson.build @@ -833,6 +833,10 @@ units = [ }, ] +# For the udev/hwdb aliases +udev_units = [] +hwdb_units = [] + foreach unit : units source = unit.get('file') @@ -855,7 +859,7 @@ foreach unit : units endforeach if needs_jinja - custom_target( + t = custom_target( name, input : source, output : name, @@ -863,6 +867,11 @@ foreach unit : units install : install, install_dir : systemunitdir, install_tag : unit.get('install_tag', '')) + if unit.get('install_tag', '') == 'udev' + udev_units += t + elif unit.get('install_tag', '') == 'hwdb' + hwdb_units += t + endif elif install install_data(source, install_dir : systemunitdir, -- 2.47.3