]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
meson: add TAGS target
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 6 Apr 2017 18:33:27 +0000 (14:33 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 24 Apr 2017 01:47:26 +0000 (21:47 -0400)
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/

meson.build

index 506b43dfca738cf95cae950b01e1b4ac00e88602..20c6cd1a8b0d1bf4c2cb5f50d6b0d07cacc97695 100644 (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