From 0700e8ba71eb37d32c330b8787770d40abc69a4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 3 Jul 2017 12:42:29 -0400 Subject: [PATCH] meson: add support for ctags This is a squash of casync commits https://github.com/systemd/casync/commit/02fbbdb2b9a926a695a3ede7f3e3c17b9779db1a (by Silvio Fricke) and https://github.com/systemd/casync/commit/b687a94b1e24df73d32f8cdcee29f3c00eae69c9. Instead of checking during every meson config whether etags are available, just try to call them and error out if not. This has the advantage that the target is always available (if git is installed), and the error message gives a hint what needs to be installed. The naming is confusing, but etags(1) is pretty clear: - emacs expects TAGS file in etags format - vi expects tags file in ctags format and automake docs are pretty clear too: - tags target generates TAGS file - ctags target generates tags file --- meson.build | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index a3014545b3..ce59d18b83 100644 --- a/meson.build +++ b/meson.build @@ -451,7 +451,6 @@ awk = find_program('awk') m4 = find_program('m4') stat = find_program('stat') git = find_program('git', required : false) -etags = find_program('etags', required : false) meson_make_symlink = meson.source_root() + '/tools/meson-make-symlink.sh' mkdir_p = 'mkdir -p $DESTDIR/@0@' @@ -2321,7 +2320,7 @@ endforeach ############################################################ -if git.found() and etags.found() +if git.found() all_files = run_command( git, ['--git-dir=@0@/.git'.format(meson.source_root()), @@ -2330,9 +2329,13 @@ if git.found() and etags.found() all_files = files(all_files.stdout().split()) run_target( - 'TAGS', + 'tags', input : all_files, - command : [etags, '-o', '@0@/TAGS'.format(meson.source_root())] + all_files) + command : ['env', 'etags', '-o', '@0@/TAGS'.format(meson.source_root())] + all_files) + run_target( + 'ctags', + input : all_files, + command : ['env', 'ctags', '-o', '@0@/tags'.format(meson.source_root())] + all_files) endif if git.found()