mesonbuild/meson

error when program is not found is not useful

Open

#2,029 opened on Jul 3, 2017

 (2 comments) (0 reactions) (0 assignees)Python (1,465 forks)batch import
bughelp wanted

Repository metrics

Stars
 (4,978 stars)
PR merge metrics
 (Avg merge 139d 13h) (51 merged PRs in 30d)

Description

I have a tags target:

run_target('tags', command : ['etags', '-o', '@0@/@1@'.format(meson.source_root(), 'TAGS')] + all_files)

(The presence of etags is not checked first with find_program on purpose: I want the target to be always there, and just fail with an error message is the program is not found. And I don't want to spam normal builds with a message about a missing etags program, because most users won't need it.)

When this target is executed and ctags is not installed, the message is useless:

$ ninja -C build ctags
[0/1] Running external command ctags.
Could not execute command "ctags".
FAILED: ctags 
'/usr/bin/python3' '/home/zbyszek/src/meson/meson.py' '--internal' 'commandrunner' '/home/zbyszek/src/casync' '/home/zbyszek/src/casync/build' '' '/home/zbyszek/src/meson/mesonintrospect.py' 'ctags' '-o' '/home/zbyszek/src/casync/tags' ...
ninja: build stopped: subcommand failed.

I'd expect the usual:

meson: ‘ctags’: No such file or directory

Contributor guide