From: Zbigniew Jędrzejewski-Szmek Date: Mon, 3 Jul 2017 16:42:29 +0000 (-0400) Subject: meson: add support for ctags X-Git-Tag: v234~36^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0700e8ba71eb37d32c330b8787770d40abc69a4e;p=thirdparty%2Fsystemd.git 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 --- diff --git a/meson.build b/meson.build index a3014545b33..ce59d18b83f 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 : ['env', 'etags', '-o', '@0@/TAGS'.format(meson.source_root())] + all_files) + run_target( + 'ctags', input : all_files, - command : [etags, '-o', '@0@/TAGS'.format(meson.source_root())] + all_files) + command : ['env', 'ctags', '-o', '@0@/tags'.format(meson.source_root())] + all_files) endif if git.found()