Gentoo Archives: gentoo-dev

From: Sam James <sam@g.o>
To: gentoo-dev@l.g.o
Cc: mgorny@g.o, floppym@g.o, williamh@g.o, kde@g.o, orbea <orbea@××××××.net>, Sam James <sam@g.o>
Subject: [gentoo-dev] [PATCH 1/5] ninja-utils.eclass: Support dev-util/samurai
Date: Sun, 08 May 2022 23:07:32
Message-Id: 20220508230716.1259369-1-sam@gentoo.org
1 From: orbea <orbea@××××××.net>
2
3 samurai is a ninja-compatible build tool written in C which
4 works with cmake, meson and other users of ninja.
5
6 It is feature-complete and supports most of the same options
7 as ninja.
8
9 Signed-off-by: orbea <orbea@××××××.net>
10 Signed-off-by: Sam James <sam@g.o>
11 ---
12 eclass/ninja-utils.eclass | 24 +++++++++++++++++++++++-
13 1 file changed, 23 insertions(+), 1 deletion(-)
14
15 diff --git a/eclass/ninja-utils.eclass b/eclass/ninja-utils.eclass
16 index c5f34934192f..67f7a6b5e8a7 100644
17 --- a/eclass/ninja-utils.eclass
18 +++ b/eclass/ninja-utils.eclass
19 @@ -26,6 +26,15 @@ esac
20 if [[ -z ${_NINJA_UTILS_ECLASS} ]]; then
21 _NINJA_UTILS_ECLASS=1
22
23 +# @ECLASS_VARIABLE: NINJA
24 +# @PRE_INHERIT
25 +# @DEFAULT_UNSET
26 +# @DESCRIPTION:
27 +# Specify a compatible ninja implementation to be used by eninja.
28 +# At this point only "ninja" and "samu" are supported.
29 +# The default is set to "ninja".
30 +: ${NINJA:=ninja}
31 +
32 # @ECLASS_VARIABLE: NINJAOPTS
33 # @DEFAULT_UNSET
34 # @DESCRIPTION:
35 @@ -35,6 +44,19 @@ _NINJA_UTILS_ECLASS=1
36
37 inherit multiprocessing
38
39 +case "${NINJA}" in
40 + ninja)
41 + NINJA_DEPEND=">=dev-util/ninja-1.8.2"
42 + ;;
43 + samu)
44 + NINJA_DEPEND="dev-util/samurai"
45 + ;;
46 + *)
47 + eerror "Unknown value for \${NINJA}"
48 + die "Value ${NINJA} is not supported"
49 + ;;
50 +esac
51 +
52 # @FUNCTION: eninja
53 # @USAGE: [<args>...]
54 # @DESCRIPTION:
55 @@ -48,7 +70,7 @@ eninja() {
56 if [[ -z ${NINJAOPTS+set} ]]; then
57 NINJAOPTS="-j$(makeopts_jobs "${MAKEOPTS}" 999) -l$(makeopts_loadavg "${MAKEOPTS}" 0)"
58 fi
59 - set -- ninja -v ${NINJAOPTS} "$@"
60 + set -- "${NINJA}" -v ${NINJAOPTS} "$@"
61 echo "$@" >&2
62 "$@" || die "${nonfatal_args[@]}" "${*} failed"
63 }
64 --
65 2.35.1

Replies