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