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 |