summaryrefslogtreecommitdiff
path: root/eclass/ninja-utils.eclass
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-05-12 16:42:50 +0300
committerV3n3RiX <venerix@koprulu.sector>2022-05-12 16:42:50 +0300
commit752d6256e5204b958b0ef7905675a940b5e9172f (patch)
tree330d16e6362a49cbed8875a777fe641a43376cd3 /eclass/ninja-utils.eclass
parent0c100b7dd2b30e75b799d806df4ef899fd98e1ea (diff)
gentoo resync : 12.05.2022
Diffstat (limited to 'eclass/ninja-utils.eclass')
-rw-r--r--eclass/ninja-utils.eclass34
1 files changed, 31 insertions, 3 deletions
diff --git a/eclass/ninja-utils.eclass b/eclass/ninja-utils.eclass
index 9f6d2af6bdb2..0dffd2eb86ff 100644
--- a/eclass/ninja-utils.eclass
+++ b/eclass/ninja-utils.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: ninja-utils.eclass
@@ -26,6 +26,21 @@ esac
if [[ -z ${_NINJA_UTILS_ECLASS} ]]; then
_NINJA_UTILS_ECLASS=1
+# @ECLASS_VARIABLE: NINJA
+# @PRE_INHERIT
+# @DESCRIPTION:
+# Specify a compatible ninja implementation to be used by eninja().
+# At this point only "ninja" and "samu" are explicitly supported,
+# but other values can be set where NINJA_DEPEND will then be set
+# to a blank variable.
+# The default is set to "ninja".
+: ${NINJA:=ninja}
+
+# @ECLASS_VARIABLE: NINJA_DEPEND
+# @OUTPUT_VARIABLE
+# @DESCRIPTION:
+# Contains a set of build-time depenendencies based on the NINJA setting.
+
# @ECLASS_VARIABLE: NINJAOPTS
# @DEFAULT_UNSET
# @DESCRIPTION:
@@ -35,6 +50,18 @@ _NINJA_UTILS_ECLASS=1
inherit multiprocessing
+case "${NINJA}" in
+ ninja)
+ NINJA_DEPEND=">=dev-util/ninja-1.8.2"
+ ;;
+ samu)
+ NINJA_DEPEND="dev-util/samurai"
+ ;;
+ *)
+ NINJA_DEPEND=""
+ ;;
+esac
+
# @FUNCTION: eninja
# @USAGE: [<args>...]
# @DESCRIPTION:
@@ -46,9 +73,10 @@ eninja() {
[[ ${EAPI} != 5 ]] && nonfatal_args+=( -n )
if [[ -z ${NINJAOPTS+set} ]]; then
- NINJAOPTS="-j$(makeopts_jobs) -l$(makeopts_loadavg "${MAKEOPTS}" 0)"
+ NINJAOPTS="-j$(makeopts_jobs "${MAKEOPTS}" 999) -l$(makeopts_loadavg "${MAKEOPTS}" 0)"
fi
- set -- ninja -v ${NINJAOPTS} "$@"
+ [[ -n "${NINJA_DEPEND}" ]] || ewarn "Unknown value '${NINJA}' for \${NINJA}"
+ set -- "${NINJA}" -v ${NINJAOPTS} "$@"
echo "$@" >&2
"$@" || die "${nonfatal_args[@]}" "${*} failed"
}