From 5220bb8c3f9a5db745f8cd36f0e539b1e871bbca Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 19 Nov 2025 11:20:18 +0100 Subject: [PATCH] meson: automatically add 'extract' to 'sources' In all cases, everything that we list in 'extract', we also list in 'sources'. We can simplify things by automatically appending the first list to the second. In the listings, move 'extract' key right below 'sources', since now they are both "sources", just with slightly different meanings. --- meson.build | 13 ++++++++++--- src/analyze/meson.build | 2 +- src/busctl/meson.build | 2 +- src/coredump/meson.build | 2 +- src/hibernate-resume/meson.build | 5 +---- src/home/meson.build | 4 ++-- src/import/meson.build | 2 +- src/integritysetup/meson.build | 5 +---- src/journal-remote/meson.build | 10 +++++----- src/journal/meson.build | 4 ++-- src/libsystemd-network/meson.build | 5 +---- src/locale/meson.build | 2 +- src/login/meson.build | 4 ++-- src/machine/meson.build | 2 +- src/network/meson.build | 4 ++-- src/nspawn/meson.build | 4 ++-- src/nsresourced/meson.build | 4 ++-- src/oom/meson.build | 2 +- src/resolve/meson.build | 4 ++-- src/shutdown/meson.build | 2 +- src/sleep/meson.build | 11 ++--------- src/ssh-generator/meson.build | 17 ++++------------- src/systemctl/meson.build | 2 +- src/sysupdate/meson.build | 2 +- src/test/meson.build | 13 +++++-------- src/timesync/meson.build | 4 ++-- src/tmpfiles/meson.build | 2 +- src/udev/meson.build | 8 ++------ src/vmspawn/meson.build | 2 +- src/xdg-autostart-generator/meson.build | 12 ++---------- 30 files changed, 61 insertions(+), 94 deletions(-) diff --git a/meson.build b/meson.build index c12cc645607..8b08bb31783 100644 --- a/meson.build +++ b/meson.build @@ -2561,11 +2561,13 @@ foreach dict : executables continue endif + exe_sources = dict.get('sources', []) + dict.get('extract', []) + kwargs = {} foreach key, val : dict if key in ['name', 'dbus', 'public', 'conditions', 'type', 'suite', 'timeout', 'parallel', - 'objects', 'extract'] + 'objects', 'sources', 'extract'] continue endif @@ -2596,12 +2598,17 @@ foreach dict : executables if is_fuzz foreach key, val : fuzz_additional_kwargs - kwargs += { key : [ kwargs.get(key, []), val ] } + if key == 'sources' + exe_sources += val + else + kwargs += { key : [ kwargs.get(key, []), val ] } + endif endforeach endif exe = executable( name, + sources : exe_sources, kwargs : kwargs, implicit_include_directories : false, ) @@ -2609,7 +2616,7 @@ foreach dict : executables executables_by_name += { name : exe } if not name.endswith('.standalone') - sources += dict.get('sources', []) + sources += exe_sources endif if dict.has_key('extract') diff --git a/src/analyze/meson.build b/src/analyze/meson.build index 03fade3f4bb..67001845ac1 100644 --- a/src/analyze/meson.build +++ b/src/analyze/meson.build @@ -48,7 +48,7 @@ executables += [ executable_template + { 'name' : 'systemd-analyze', 'public' : conf.get('ENABLE_ANALYZE') == 1, - 'sources' : systemd_analyze_sources + systemd_analyze_extract_sources, + 'sources' : systemd_analyze_sources, 'extract' : systemd_analyze_extract_sources, 'include_directories' : core_includes, 'link_with' : [ diff --git a/src/busctl/meson.build b/src/busctl/meson.build index e47531cf028..9aee5b0d252 100644 --- a/src/busctl/meson.build +++ b/src/busctl/meson.build @@ -11,7 +11,7 @@ executables += [ executable_template + { 'name' : 'busctl', 'public' : true, - 'sources' : busctl_sources + busctl_extract_sources, + 'sources' : busctl_sources, 'extract' : busctl_extract_sources, }, test_template + { diff --git a/src/coredump/meson.build b/src/coredump/meson.build index a401ad34fe4..230eb0f3e6f 100644 --- a/src/coredump/meson.build +++ b/src/coredump/meson.build @@ -36,7 +36,7 @@ common_dependencies = [ executables += [ libexec_template + { 'name' : 'systemd-coredump', - 'sources' : systemd_coredump_sources + systemd_coredump_extract_sources, + 'sources' : systemd_coredump_sources, 'include_directories' : [libexec_template['include_directories'], include_directories('.')], 'extract' : systemd_coredump_extract_sources, 'link_with' : [libshared], diff --git a/src/hibernate-resume/meson.build b/src/hibernate-resume/meson.build index 0aa085a8062..e18f60e3b47 100644 --- a/src/hibernate-resume/meson.build +++ b/src/hibernate-resume/meson.build @@ -7,10 +7,7 @@ endif executables += [ libexec_template + { 'name' : 'systemd-hibernate-resume', - 'sources' : files( - 'hibernate-resume.c', - 'hibernate-resume-config.c', - ), + 'sources' : files('hibernate-resume.c'), 'extract' : files('hibernate-resume-config.c'), }, generator_template + { diff --git a/src/home/meson.build b/src/home/meson.build index f40f935d556..f913cb75e5d 100644 --- a/src/home/meson.build +++ b/src/home/meson.build @@ -61,10 +61,10 @@ executables += [ libexec_template + { 'name' : 'systemd-homed', 'dbus' : true, - 'sources' : systemd_homed_sources + systemd_homed_extract_sources, + 'sources' : systemd_homed_sources, + 'extract' : systemd_homed_extract_sources, 'include_directories' : includes + include_directories('.'), - 'extract' : systemd_homed_extract_sources, 'dependencies' : [ libcrypt, libm, diff --git a/src/import/meson.build b/src/import/meson.build index baa12bd4902..029d4047263 100644 --- a/src/import/meson.build +++ b/src/import/meson.build @@ -50,7 +50,7 @@ executables += [ libexec_template + { 'name' : 'systemd-importd', 'dbus' : true, - 'sources' : systemd_importd_sources + systemd_importd_extract_sources, + 'sources' : systemd_importd_sources, 'extract' : systemd_importd_extract_sources, 'dependencies' : [common_deps, threads], }, diff --git a/src/integritysetup/meson.build b/src/integritysetup/meson.build index a81c17e8459..dd2eb60cf69 100644 --- a/src/integritysetup/meson.build +++ b/src/integritysetup/meson.build @@ -7,10 +7,7 @@ endif executables += [ libexec_template + { 'name' : 'systemd-integritysetup', - 'sources' : files( - 'integrity-util.c', - 'integritysetup.c', - ), + 'sources' : files('integritysetup.c'), 'extract' : files('integrity-util.c'), 'dependencies' : libcryptsetup, }, diff --git a/src/journal-remote/meson.build b/src/journal-remote/meson.build index 496220201b1..51261d000d9 100644 --- a/src/journal-remote/meson.build +++ b/src/journal-remote/meson.build @@ -39,7 +39,7 @@ executables += [ 'ENABLE_REMOTE', 'HAVE_MICROHTTPD', ], - 'sources' : systemd_journal_gatewayd_sources + systemd_journal_gatewayd_extract_sources, + 'sources' : systemd_journal_gatewayd_sources, 'extract' : systemd_journal_gatewayd_extract_sources, 'dependencies' : common_deps + [libmicrohttpd], }, @@ -50,9 +50,9 @@ executables += [ # fuzz-journal-remote even when --auto-features=disabled (see tools/oss-fuzz.sh for why). # Instead, we make sure we don't install it when the remote feature is disabled. 'install' : conf.get('ENABLE_REMOTE') == 1, - 'sources' : systemd_journal_remote_sources + systemd_journal_remote_extract_sources, - 'objects' : conf.get('HAVE_MICROHTTPD') == 1 ? ['systemd-journal-gatewayd'] : [], + 'sources' : systemd_journal_remote_sources, 'extract' : systemd_journal_remote_extract_sources, + 'objects' : conf.get('HAVE_MICROHTTPD') == 1 ? ['systemd-journal-gatewayd'] : [], 'dependencies' : common_deps + [libmicrohttpd], }, libexec_template + { @@ -62,9 +62,9 @@ executables += [ 'ENABLE_REMOTE', 'HAVE_LIBCURL', ], - 'sources' : systemd_journal_upload_sources + systemd_journal_upload_extract_sources, - 'objects' : ['systemd-journal-remote'], + 'sources' : systemd_journal_upload_sources, 'extract' : systemd_journal_upload_extract_sources, + 'objects' : ['systemd-journal-remote'], 'dependencies' : common_deps + [libcurl], }, test_template + { diff --git a/src/journal/meson.build b/src/journal/meson.build index 7f35421e152..fc5f557696e 100644 --- a/src/journal/meson.build +++ b/src/journal/meson.build @@ -64,9 +64,9 @@ journal_fuzz_template = fuzz_template + { executables += [ libexec_template + { 'name' : 'systemd-journald', - 'sources' : systemd_journald_sources + systemd_journald_extract_sources, - 'include_directories' : [libexec_template['include_directories'], include_directories('.')], + 'sources' : systemd_journald_sources, 'extract' : systemd_journald_extract_sources, + 'include_directories' : [libexec_template['include_directories'], include_directories('.')], 'dependencies' : [ liblz4_cflags, libselinux_cflags, diff --git a/src/libsystemd-network/meson.build b/src/libsystemd-network/meson.build index 6b36c2eb649..e0012abe0bc 100644 --- a/src/libsystemd-network/meson.build +++ b/src/libsystemd-network/meson.build @@ -93,10 +93,7 @@ executables += [ 'sources' : files('test-lldp-rx.c'), }, network_test_template + { - 'sources' : files( - 'test-ndisc-ra.c', - 'icmp6-test-util.c', - ), + 'sources' : files('test-ndisc-ra.c'), 'extract' : files('icmp6-test-util.c'), }, network_test_template + { diff --git a/src/locale/meson.build b/src/locale/meson.build index 2994080d1f0..1b97628abbc 100644 --- a/src/locale/meson.build +++ b/src/locale/meson.build @@ -29,7 +29,7 @@ executables += [ libexec_template + { 'name' : 'systemd-localed', 'dbus' : true, - 'sources' : systemd_localed_sources + systemd_localed_extract_sources, + 'sources' : systemd_localed_sources, 'extract' : systemd_localed_extract_sources, 'dependencies' : libxkbcommon_deps, }, diff --git a/src/login/meson.build b/src/login/meson.build index 0ad9beb1678..435dcf4d27d 100644 --- a/src/login/meson.build +++ b/src/login/meson.build @@ -45,9 +45,9 @@ executables += [ libexec_template + { 'name' : 'systemd-logind', 'dbus' : true, - 'sources' : systemd_logind_sources + systemd_logind_extract_sources, - 'include_directories' : [libexec_template['include_directories'], include_directories('.')], + 'sources' : systemd_logind_sources, 'extract' : systemd_logind_extract_sources, + 'include_directories' : [libexec_template['include_directories'], include_directories('.')], 'dependencies' : [ threads, ], diff --git a/src/machine/meson.build b/src/machine/meson.build index e8b6c1611fe..13756cb8a1b 100644 --- a/src/machine/meson.build +++ b/src/machine/meson.build @@ -25,7 +25,7 @@ executables += [ libexec_template + { 'name' : 'systemd-machined', 'dbus' : true, - 'sources' : systemd_machined_sources + systemd_machined_extract_sources, + 'sources' : systemd_machined_sources, 'extract' : systemd_machined_extract_sources, }, executable_template + { diff --git a/src/network/meson.build b/src/network/meson.build index 2b66aa27436..353294c1a32 100644 --- a/src/network/meson.build +++ b/src/network/meson.build @@ -198,7 +198,7 @@ executables += [ 'name' : 'systemd-networkd', 'dbus' : true, 'conditions' : ['ENABLE_NETWORKD'], - 'sources' : systemd_networkd_sources + systemd_networkd_extract_sources, + 'sources' : systemd_networkd_sources, 'extract' : systemd_networkd_extract_sources, 'include_directories' : network_includes, 'link_with' : [ @@ -227,7 +227,7 @@ executables += [ }, libexec_template + { 'name' : 'systemd-network-generator', - 'sources' : files('generator/network-generator.c', 'generator/network-generator-main.c'), + 'sources' : files('generator/network-generator-main.c'), 'extract' : files('generator/network-generator.c'), 'link_with' : networkd_link_with, }, diff --git a/src/nspawn/meson.build b/src/nspawn/meson.build index 1fcf6a3bb07..98bbb48b093 100644 --- a/src/nspawn/meson.build +++ b/src/nspawn/meson.build @@ -40,12 +40,12 @@ executables += [ executable_template + { 'name' : 'systemd-nspawn', 'public' : true, - 'sources' : nspawn_sources + nspawn_extract_sources, + 'sources' : nspawn_sources, + 'extract' : nspawn_extract_sources, 'include_directories' : [ executable_template['include_directories'], include_directories('.') ], - 'extract' : nspawn_extract_sources, 'dependencies' : [ libseccomp_cflags, libselinux_cflags, diff --git a/src/nsresourced/meson.build b/src/nsresourced/meson.build index 31d334f8111..4fb55f67f9d 100644 --- a/src/nsresourced/meson.build +++ b/src/nsresourced/meson.build @@ -30,9 +30,9 @@ endif executables += [ libexec_template + { 'name' : 'systemd-nsresourced', - 'sources' : systemd_nsresourced_sources + systemd_nsresourced_extract_sources, - 'include_directories' : [libexec_template['include_directories'], include_directories('.')], + 'sources' : systemd_nsresourced_sources, 'extract' : systemd_nsresourced_extract_sources, + 'include_directories' : [libexec_template['include_directories'], include_directories('.')], 'dependencies' : threads, }, libexec_template + { diff --git a/src/oom/meson.build b/src/oom/meson.build index f462169e711..95541e5542c 100644 --- a/src/oom/meson.build +++ b/src/oom/meson.build @@ -18,7 +18,7 @@ executables += [ libexec_template + { 'name' : 'systemd-oomd', 'dbus' : true, - 'sources' : systemd_oomd_sources + systemd_oomd_extract_sources, + 'sources' : systemd_oomd_sources, 'extract' : systemd_oomd_extract_sources, 'dependencies' : libatomic, }, diff --git a/src/resolve/meson.build b/src/resolve/meson.build index 568a7c3c1d1..b32e9526c8d 100644 --- a/src/resolve/meson.build +++ b/src/resolve/meson.build @@ -81,9 +81,9 @@ executables += [ libexec_template + resolve_common_template + { 'name' : 'systemd-resolved', 'dbus' : true, - 'sources' : systemd_resolved_sources + systemd_resolved_extract_sources, - 'include_directories' : [libexec_template['include_directories'], include_directories('.')], + 'sources' : systemd_resolved_sources, 'extract' : systemd_resolved_extract_sources, + 'include_directories' : [libexec_template['include_directories'], include_directories('.')], }, executable_template + resolve_common_template + { 'name' : 'resolvectl', diff --git a/src/shutdown/meson.build b/src/shutdown/meson.build index c239ec35726..00d3d52c0a4 100644 --- a/src/shutdown/meson.build +++ b/src/shutdown/meson.build @@ -14,7 +14,7 @@ systemd_shutdown_extract_sources = files( executables += [ libexec_template + { 'name' : 'systemd-shutdown', - 'sources' : systemd_shutdown_sources + systemd_shutdown_extract_sources, + 'sources' : systemd_shutdown_sources, 'extract' : systemd_shutdown_extract_sources, 'dependencies' : libmount_cflags, }, diff --git a/src/sleep/meson.build b/src/sleep/meson.build index f17c778fe2c..ff9ea74aa2e 100644 --- a/src/sleep/meson.build +++ b/src/sleep/meson.build @@ -1,18 +1,11 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -sleep_sources = files( - 'sleep.c', -) -sleep_extract_sources = files( - 'battery-capacity.c', -) - executables += [ libexec_template + { 'name' : 'systemd-sleep', - 'sources' : sleep_sources + sleep_extract_sources, + 'sources' : files('sleep.c'), + 'extract' : files('battery-capacity.c'), 'include_directories' : [libexec_template['include_directories'], include_directories('.')], - 'extract' : sleep_extract_sources, }, test_template + { 'sources' : files('test-battery-capacity.c'), diff --git a/src/ssh-generator/meson.build b/src/ssh-generator/meson.build index a7162e9b869..6fcf8d11fe0 100644 --- a/src/ssh-generator/meson.build +++ b/src/ssh-generator/meson.build @@ -3,25 +3,16 @@ executables += [ generator_template + { 'name' : 'systemd-ssh-generator', - 'sources' : files( - 'ssh-generator.c', - 'ssh-util.c', - ), - 'extract' : files( - 'ssh-util.c', - ), + 'sources' : files('ssh-generator.c'), + 'extract' : files('ssh-util.c'), }, libexec_template + { 'name' : 'systemd-ssh-proxy', - 'sources' : files( - 'ssh-proxy.c', - ), + 'sources' : files('ssh-proxy.c'), }, libexec_template + { 'name' : 'systemd-ssh-issue', - 'sources' : files( - 'ssh-issue.c', - ), + 'sources' : files('ssh-issue.c'), 'objects' : ['systemd-ssh-generator'], }, ] diff --git a/src/systemctl/meson.build b/src/systemctl/meson.build index 04af155cdcb..820214919f0 100644 --- a/src/systemctl/meson.build +++ b/src/systemctl/meson.build @@ -52,7 +52,7 @@ executables += [ executable_template + { 'name' : 'systemctl', 'public' : true, - 'sources' : systemctl_sources + systemctl_extract_sources, + 'sources' : systemctl_sources, 'extract' : systemctl_extract_sources, 'link_with' : systemctl_link_with, 'dependencies' : [ diff --git a/src/sysupdate/meson.build b/src/sysupdate/meson.build index 5076504764d..6875834e0fc 100644 --- a/src/sysupdate/meson.build +++ b/src/sysupdate/meson.build @@ -25,7 +25,7 @@ executables += [ 'name' : 'systemd-sysupdate', 'public' : true, 'conditions' : ['ENABLE_SYSUPDATE'], - 'sources' : systemd_sysupdate_sources + systemd_sysupdate_extract_sources, + 'sources' : systemd_sysupdate_sources, 'extract' : systemd_sysupdate_extract_sources, 'link_with' : [ libshared, diff --git a/src/test/meson.build b/src/test/meson.build index c76b2d16172..a32ff9f99eb 100644 --- a/src/test/meson.build +++ b/src/test/meson.build @@ -381,10 +381,7 @@ executables += [ 'type' : 'manual', }, test_template + { - 'sources' : files( - 'test-nss-hosts.c', - 'nss-test-util.c', - ), + 'sources' : files('test-nss-hosts.c'), 'extract' : files('nss-test-util.c'), 'dependencies' : [ libdl, @@ -489,13 +486,13 @@ executables += [ # Symbol tests test_template + { 'name' : 'test-libsystemd-sym', - 'sources' : test_libsystemd_sym_c, + 'sources' : [test_libsystemd_sym_c], 'link_with' : libsystemd, 'suite' : 'libsystemd', }, test_template + { 'name' : 'test-libudev-sym', - 'sources' : test_libudev_sym_c, + 'sources' : [test_libudev_sym_c], 'include_directories' : libudev_includes, 'c_args' : ['-Wno-deprecated-declarations'] + test_cflags, 'link_with' : libudev, @@ -653,7 +650,7 @@ if static_libsystemd != 'false' executables += [ test_template + { 'name' : 'test-libsystemd-static-sym', - 'sources' : test_libsystemd_sym_c, + 'sources' : [test_libsystemd_sym_c], 'link_with' : install_libsystemd_static, 'build_by_default' : want_tests != 'false', 'install' : install_tests, @@ -666,7 +663,7 @@ if static_libudev != 'false' executables += [ test_template + { 'name' : 'test-libudev-static-sym', - 'sources' : test_libudev_sym_c, + 'sources' : [test_libudev_sym_c], 'include_directories' : libudev_includes, 'c_args' : ['-Wno-deprecated-declarations'] + test_cflags, 'link_with' : install_libudev_static, diff --git a/src/timesync/meson.build b/src/timesync/meson.build index 6da9d1a8f23..51e9d3f5c10 100644 --- a/src/timesync/meson.build +++ b/src/timesync/meson.build @@ -32,9 +32,9 @@ endif executables += [ libexec_template + { 'name' : 'systemd-timesyncd', - 'sources' : timesyncd_sources + timesyncd_extract_sources, - 'include_directories' : [libexec_template['include_directories'], include_directories('.')], + 'sources' : timesyncd_sources, 'extract' : timesyncd_extract_sources, + 'include_directories' : [libexec_template['include_directories'], include_directories('.')], 'link_with' : timesyncd_link_with, 'dependencies' : [ libm, diff --git a/src/tmpfiles/meson.build b/src/tmpfiles/meson.build index 2e26d7b0dc3..9abe0a0c8e2 100644 --- a/src/tmpfiles/meson.build +++ b/src/tmpfiles/meson.build @@ -15,7 +15,7 @@ executables += [ executable_template + { 'name' : 'systemd-tmpfiles', 'public' : true, - 'sources' : systemd_tmpfiles_sources + systemd_tmpfiles_extract_sources, + 'sources' : systemd_tmpfiles_sources, 'extract' : systemd_tmpfiles_extract_sources, 'dependencies' : libacl_cflags, }, diff --git a/src/udev/meson.build b/src/udev/meson.build index 62b0f573f5a..555e83fa7fa 100644 --- a/src/udev/meson.build +++ b/src/udev/meson.build @@ -144,8 +144,8 @@ udev_binaries_dict = [ 'name' : 'udevadm', 'public' : true, 'sources' : udevadm_sources + - udevadm_extract_sources + keyboard_keys_from_name_inc, + 'extract' : udevadm_extract_sources, 'include_directories' : [ libexec_template['include_directories'], include_directories('.', 'net'), @@ -154,7 +154,6 @@ udev_binaries_dict = [ 'link_with' : udev_link_with, 'install_rpath' : udev_rpath, 'install_tag' : 'udev', - 'extract' : udevadm_extract_sources, }, udev_plugin_template + { 'name' : 'ata_id', @@ -171,10 +170,7 @@ udev_binaries_dict = [ }, udev_plugin_template + { 'name' : 'fido_id', - 'sources' : files( - 'fido_id/fido_id.c', - 'fido_id/fido_id_desc.c', - ), + 'sources' : files('fido_id/fido_id.c'), 'extract' : files('fido_id/fido_id_desc.c'), }, udev_plugin_template + { diff --git a/src/vmspawn/meson.build b/src/vmspawn/meson.build index 89f2bca1dee..a836b316578 100644 --- a/src/vmspawn/meson.build +++ b/src/vmspawn/meson.build @@ -19,7 +19,7 @@ executables += [ executable_template + { 'name' : 'systemd-vmspawn', 'public' : true, - 'sources' : vmspawn_sources + vmspawn_extract_sources, + 'sources' : vmspawn_sources, 'extract' : vmspawn_extract_sources, }, test_template + { diff --git a/src/xdg-autostart-generator/meson.build b/src/xdg-autostart-generator/meson.build index 8f51bdcc7d0..752ee9f8abf 100644 --- a/src/xdg-autostart-generator/meson.build +++ b/src/xdg-autostart-generator/meson.build @@ -4,19 +4,11 @@ if conf.get('ENABLE_XDG_AUTOSTART') != 1 subdir_done() endif -systemd_xdg_autostart_generator_sources = files( - 'xdg-autostart-generator.c', -) -systemd_xdg_autostart_generator_extract_sources = files( - 'xdg-autostart-service.c', -) - executables += [ executable_template + { 'name' : 'systemd-xdg-autostart-generator', - 'sources' : systemd_xdg_autostart_generator_sources + - systemd_xdg_autostart_generator_extract_sources, - 'extract' : systemd_xdg_autostart_generator_extract_sources, + 'sources' : files('xdg-autostart-generator.c'), + 'extract' : files('xdg-autostart-service.c'), 'install_dir' : usergeneratordir, }, libexec_template + { -- 2.47.3