[PATCH] meson: Check whether git is new enough to support ls-files --deduplicate
- From
Martin Storsjö <martin@martin.st>
- Date
- Jul 31, 2025, 12:15 UTC
- Message-ID
- <20250731121533.178747-1-martin@martin.st>
This fixes Meson errors like this:
../meson.build:697:19: ERROR: Command `/usr/bin/git -C /home/martin/code/git ls-files --deduplicate '*.h' ':!contrib' ':!compat/inet_ntop.c' ':!compat/inet_pton.c' ':!compat/nedmalloc' ':!compat/obstack.*' ':!compat/poll' ':!compat/regex' ':!sha1collisiondetection' ':!sha1dc' ':!t/unit-tests/clar' ':!t/t[0-9][0-9][0-9][0-9]*' ':!xdiff'` failed with status 129.
Unfortunately, Meson only supports the external_program.version() method since Meson 0.62. So with older versions of Meson, we have to just assume that it exists (or maybe assume that it doesn't).
Signed-off-by: Martin Storsjö <martin@martin.st> --- meson.build | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build index 9bc1826cb6..717365baec 100644 --- a/meson.build +++ b/meson.build @@ -693,7 +693,14 @@ third_party_excludes = [ ] headers_to_check = [] -if git.found() and fs.exists(meson.project_source_root() / '.git') +if meson.version().version_compare('>=0.62') + new_enough_git = git.found() and git.version().version_compare('>=2.31') +else + # On Meson 0.61, we can't check git.version(), so we just have to + # assume that the found git is new enough. + new_enough_git = git.found() +endif +if new_enough_git and fs.exists(meson.project_source_root() / '.git') foreach header : run_command(git, '-C', meson.project_source_root(), 'ls-files', '--deduplicate', '*.h', third_party_excludes, check: true).stdout().split() headers_to_check += header endforeach
-- 2.43.0