commit:     385957565ea319259586571fb931e2df01bdf215
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 17 15:11:25 2023 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Tue Jul 18 20:51:54 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=38595756

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 <AT> 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 fa1aa137ea73..5a211e81131d 100644
--- a/eclass/ninja-utils.eclass
+++ b/eclass/ninja-utils.eclass
@@ -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"
 }

Reply via email to