mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-15 00:46:58 +02:00
eclass/ninja-utils: Sync with Gentoo
It's from Gentoo commit 5a34097c8957c40d5b09fe6d249449c22f7f1ea5.
This commit is contained in:
parent
e855d3dfc7
commit
a99f896cd6
@ -1,8 +1,6 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# Flatcar: Support EAPI 4.
|
||||
|
||||
# @ECLASS: ninja-utils.eclass
|
||||
# @MAINTAINER:
|
||||
# Michał Górny <mgorny@gentoo.org>
|
||||
@ -10,7 +8,7 @@
|
||||
# @AUTHOR:
|
||||
# Michał Górny <mgorny@gentoo.org>
|
||||
# Mike Gilbert <floppym@gentoo.org>
|
||||
# @SUPPORTED_EAPIS: 4 5 6 7 8
|
||||
# @SUPPORTED_EAPIS: 5 6 7 8
|
||||
# @BLURB: common bits to run dev-util/ninja builder
|
||||
# @DESCRIPTION:
|
||||
# This eclass provides a single function -- eninja -- that can be used
|
||||
@ -21,14 +19,29 @@
|
||||
# Meson).
|
||||
|
||||
case ${EAPI} in
|
||||
4|5|6|7|8) ;;
|
||||
5|6|7|8) ;;
|
||||
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
|
||||
esac
|
||||
|
||||
if [[ -z ${_NINJA_UTILS_ECLASS} ]]; then
|
||||
_NINJA_UTILS_ECLASS=1
|
||||
|
||||
# @ECLASS-VARIABLE: NINJAOPTS
|
||||
# @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:
|
||||
# The default set of options to pass to Ninja. Similar to MAKEOPTS,
|
||||
@ -37,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:
|
||||
@ -45,12 +70,13 @@ inherit multiprocessing
|
||||
# with EAPI 6, it also supports being called via 'nonfatal'.
|
||||
eninja() {
|
||||
local nonfatal_args=()
|
||||
[[ ${EAPI} != [45] ]] && nonfatal_args+=( -n )
|
||||
[[ ${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"
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user