meson: add TAGS target

Quite necessary for all the emacs users out there ;)

v2:
- fix error with etags or git are not found

v3:
- move the definition of git and etags up so it's available for man/
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2017-04-06 14:33:27 -04:00
parent 527d43d701
commit d68b342b03
1 changed files with 19 additions and 0 deletions

View File

@ -382,6 +382,8 @@ grep = find_program('grep')
awk = find_program('awk')
m4 = find_program('/usr/bin/m4')
stat = find_program('stat')
git = find_program('git', required : false)
etags = find_program('etags', required : false)
# if -Dxxx-path option is found, use that. Otherwise, check in $PATH,
# /usr/sbin, /sbin, and fall back to the default from middle column.
@ -1855,3 +1857,20 @@ install_data('README',
'LICENSE.LGPL2.1',
'src/libsystemd/sd-bus/GVARIANT-SERIALIZATION',
install_dir : docdir)
############################################################
if git.found() and etags.found()
all_files = run_command(
git,
['--git-dir=@0@/.git'.format(meson.source_root()),
'ls-files',
':/*.[ch]'])
all_files = files(all_files.stdout().split())
custom_target(
'TAGS',
output : 'TAGS',
input : all_files,
command : [etags, '-o', '@OUTPUT@'] + all_files)
endif