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 <matts...@gentoo.org>
---
 eclass/ninja-utils.eclass | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/eclass/ninja-utils.eclass b/eclass/ninja-utils.eclass
index e6d8c9e6c0a9..26ba31678f01 100644
--- a/eclass/ninja-utils.eclass
+++ b/eclass/ninja-utils.eclass
@@ -48,6 +48,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
@@ -80,7 +86,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"
 }
-- 
2.41.0


Reply via email to