]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
meson: add udev/hwdb build aliases
authorLuca Boccassi <luca.boccassi@gmail.com>
Tue, 14 Jan 2025 23:22:04 +0000 (23:22 +0000)
committerLuca Boccassi <luca.boccassi@gmail.com>
Wed, 15 Jan 2025 09:48:27 +0000 (09:48 +0000)
Allows to do:

meson compile libudev udev hwdb
meson install --no-rebuild --tags libudev,udev,hwdb

meson.build
rules.d/meson.build
src/udev/meson.build
units/meson.build

index 6a7e76371ae2df0b6f3325842ddb1798d170d92a..3e80f7ad6c200d91efb4aeab629a76259eb9e7c3 100644 (file)
@@ -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()
 
index e8eb26c57535118bae9342b1585fb5b145c57ec8..85d314c35cc60e073c7c9302df884e2a24dda8ae 100644 (file)
@@ -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
index cff396e08289d4a1aeefd5e6c1af2f0899d89801..f008ea1f6653772c8ca8dcd88cf13c55c8ec17b7 100644 (file)
@@ -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',
index caae65fea0f97b462b9657d8b719c8c8213bdd0e..2f2a1d5fe9ec1129acf213f4520009ec28536ddc 100644 (file)
@@ -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,