From 322f6adbcdda05f2d978a0094a5f6d41b1b9f585 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 1 Dec 2025 16:09:43 +0100 Subject: [PATCH] meson: add tools/meson.build Previously, we looked for scripts in the tools/ directory ad hoc, wherever they were needed. Let's do those checks in one place. The main meson.build file is shrunk somewhat, which is always nice. --- meson.build | 55 +++++++---------------------------------- src/version/meson.build | 2 +- tools/meson.build | 37 +++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 47 deletions(-) create mode 100644 tools/meson.build diff --git a/meson.build b/meson.build index 85b8d1b407a..63b77ce2b49 100644 --- a/meson.build +++ b/meson.build @@ -79,17 +79,6 @@ summary({ ##################################################################### -# Try to install the git pre-commit hook -git_setup_sh = find_program('tools/git-setup.sh', required : false) -if git_setup_sh.found() - git_hook = run_command(git_setup_sh, check : false) - if git_hook.returncode() == 0 - message(git_hook.stdout().strip()) - endif -endif - -##################################################################### - fs = import('fs') if get_option('split-bin') == 'auto' split_bin = not fs.is_symlink('/usr/sbin') @@ -351,7 +340,6 @@ cc = meson.get_compiler('c') userspace_c_args = [] userspace_c_ld_args = [] userspace_sources = [] -meson_build_sh = files('tools/meson-build.sh') want_tests = get_option('tests') want_slow_tests = want_tests != 'false' and get_option('slow-tests') @@ -1952,10 +1940,6 @@ conf.set10('ENABLE_UKIFY', want_ukify) ##################################################################### -check_efi_alignment_py = files('tools/check-efi-alignment.py') - -##################################################################### - use_provided_vmlinux_h = false use_generated_vmlinux_h = false provided_vmlinux_h_path = get_option('vmlinux-h-path') @@ -2027,24 +2011,6 @@ conf.set10('ENABLE_SYSCTL_BPF', conf.get('HAVE_VMLINUX_H') == 1 and libbpf.versi ##################################################################### -check_version_history_py = files('tools/check-version-history.py') -elf2efi_py = files('tools/elf2efi.py') -export_dbus_interfaces_py = files('tools/dbus_exporter.py') -generate_gperfs = files('tools/generate-gperfs.py') -make_autosuspend_rules_py = files('tools/make-autosuspend-rules.py') -make_directive_index_py = files('tools/make-directive-index.py') -sync_docs_py = files('tools/sync-docs.py') -make_man_index_py = files('tools/make-man-index.py') -meson_render_jinja2 = files('tools/meson-render-jinja2.py') -update_dbus_docs_py = files('tools/update-dbus-docs.py') -update_hwdb_autosuspend_sh = files('tools/update-hwdb-autosuspend.sh') -update_hwdb_sh = files('tools/update-hwdb.sh') -update_man_rules_py = files('tools/update-man-rules.py') -update_syscall_tables_sh = files('tools/update-syscall-tables.sh') -xml_helper_py = files('tools/xml_helper.py') - -##################################################################### - version_tag = get_option('version-tag') if version_tag == '' version_tag = meson.project_version() @@ -2052,6 +2018,7 @@ endif conf.set_quoted('VERSION_TAG', version_tag) +subdir('tools') subdir('src/version') shared_lib_tag = get_option('shared-lib-tag') @@ -2071,7 +2038,7 @@ config_h = configure_file( userspace_c_args += ['-include', 'config.h'] -jinja2_cmdline = [meson_render_jinja2, config_h] +jinja2_cmdline = [meson_render_jinja2_py, config_h] userspace = declare_dependency( compile_args : userspace_c_args, @@ -2906,20 +2873,17 @@ endif ##################################################################### -check_help = files('tools/check-help.sh') -check_version = files('tools/check-version.sh') - foreach exec : public_programs name = fs.name(exec.full_path()) if want_tests != 'false' test('check-help-' + name, - check_help, + check_help_sh, suite : 'dist', args : exec.full_path(), depends: exec) test('check-version-' + name, - check_version, + check_version_sh, suite : 'dist', args : [exec.full_path(), project_major_version], @@ -2950,7 +2914,7 @@ if git.found() run_target( 'git-contrib', - command : files('tools/git-contrib.sh')) + command : git_contrib_sh) #################################################### @@ -3013,10 +2977,9 @@ foreach name, exe : executables_by_name symbol_analysis_exes += exe endforeach -find_unused_library_symbols = find_program('tools/find-unused-library-symbols.py') test( 'libshared-unused-symbols', - find_unused_library_symbols, + find_unused_library_symbols_py, suite : 'unused-symbols', args : [libshared, libcore] + nss_targets + pam_targets + symbol_analysis_exes, ) @@ -3024,7 +2987,7 @@ test( run_target( 'check-api-docs', depends : [man, libsystemd, libudev], - command : [files('tools/check-api-docs.sh'), + command : [check_api_docs_sh, libsystemd.full_path(), libudev.full_path()]) @@ -3039,7 +3002,7 @@ if not meson.is_cross_build() output : fs.name(dbus_interfaces_dir), install : dbus_interfaces_dir != 'no', install_dir : fs.parent(dbus_interfaces_dir), - command : [export_dbus_interfaces_py, '@OUTPUT@', dbus_programs]) + command : [dbus_exporter_py, '@OUTPUT@', dbus_programs]) endif custom_target( @@ -3047,7 +3010,7 @@ custom_target( capture : true, install : want_tests != 'no' and install_tests, install_dir : testdata_dir, - command : [files('tools/meson-extract-unit-files.py'), + command : [meson_extract_unit_files_py, meson.project_build_root()]) ##################################################################### diff --git a/src/version/meson.build b/src/version/meson.build index 03f58697b75..54db791ccf9 100644 --- a/src/version/meson.build +++ b/src/version/meson.build @@ -7,7 +7,7 @@ version_h = custom_target('version', output : 'version.h', capture : true, command : [ - meson.project_source_root() / 'tools/vcs-tag.sh', + vcs_tag_sh, '@INPUT@', get_option('mode'), vcs_tag ? '1' : '0', diff --git a/tools/meson.build b/tools/meson.build new file mode 100644 index 00000000000..3132eeddba5 --- /dev/null +++ b/tools/meson.build @@ -0,0 +1,37 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +check_api_docs_sh = files('check-api-docs.sh') +check_efi_alignment_py = files('check-efi-alignment.py') +check_help_sh = files('check-help.sh') +check_version_history_py = files('check-version-history.py') +check_version_sh = files('check-version.sh') +elf2efi_py = files('elf2efi.py') +dbus_exporter_py = files('dbus_exporter.py') +find_unused_library_symbols_py = files('find-unused-library-symbols.py') +generate_gperfs = files('generate-gperfs.py') +git_contrib_sh = files('git-contrib.sh') +make_autosuspend_rules_py = files('make-autosuspend-rules.py') +make_directive_index_py = files('make-directive-index.py') +make_man_index_py = files('make-man-index.py') +meson_build_sh = files('meson-build.sh') +meson_extract_unit_files_py = files('meson-extract-unit-files.py') +meson_render_jinja2_py = files('meson-render-jinja2.py') +sync_docs_py = files('sync-docs.py') +update_dbus_docs_py = files('update-dbus-docs.py') +update_hwdb_autosuspend_sh = files('update-hwdb-autosuspend.sh') +update_hwdb_sh = files('update-hwdb.sh') +update_man_rules_py = files('update-man-rules.py') +update_syscall_tables_sh = files('update-syscall-tables.sh') +vcs_tag_sh = files('vcs-tag.sh') +xml_helper_py = files('xml_helper.py') + +##################################################################### + +# Try to install the git pre-commit hook +git_setup_sh = find_program('./git-setup.sh', required : false) +if git_setup_sh.found() + git_hook = run_command(git_setup_sh, check : false) + if git_hook.returncode() == 0 + message(git_hook.stdout().strip()) + endif +endif -- 2.47.3