ninja-utils.eclass: Add NINJA_VERBOSE

ninja operates in one of three modes:
 - verbose (with -v): prints build commands
 - quiet (with --quiet): prints nothing
 - normal: prints [XX/YY]-style build status updates

samurai works the same way, except it does not have a quiet mode.

Thus we can't simply override ninja-utils' hard-coded flag from callers
of eninja.

Signed-off-by: Matt Turner <mattst88@gentoo.org>
This commit is contained in:
Matt Turner
2023-07-17 11:11:25 -04:00
parent 3641a9957a
commit 385957565e

View File

@@ -47,6 +47,12 @@ _NINJA_UTILS_ECLASS=1
# supposed to be set in make.conf. If unset, eninja() will convert
# MAKEOPTS instead.
# @ECLASS_VARIABLE: NINJA_VERBOSE
# @USER_VARIABLE
# @DESCRIPTION:
# Set to OFF to disable verbose messages during compilation
: "${NINJA_VERBOSE:=ON}"
inherit multiprocessing
case "${NINJA}" in
@@ -79,7 +85,12 @@ get_NINJAOPTS() {
# also supports being called via 'nonfatal'.
eninja() {
[[ -n "${NINJA_DEPEND}" ]] || ewarn "Unknown value '${NINJA}' for \${NINJA}"
set -- "${NINJA}" -v $(get_NINJAOPTS) "$@"
local v
case "${NINJA_VERBOSE}" in
OFF) ;;
*) v="-v"
esac
set -- "${NINJA}" ${v} $(get_NINJAOPTS) "$@"
echo "$@" >&2
"$@" || die -n "${*} failed"
}