On nie, 2017-04-30 at 22:28 +0200, Michał Górny wrote:
> ---
>  eclass/ninja-utils.eclass | 57 
> +++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 57 insertions(+)
>  create mode 100644 eclass/ninja-utils.eclass
> 
> diff --git a/eclass/ninja-utils.eclass b/eclass/ninja-utils.eclass
> new file mode 100644
> index 000000000000..69216176ba61
> --- /dev/null
> +++ b/eclass/ninja-utils.eclass
> @@ -0,0 +1,57 @@
> +# Copyright 1999-2017 Gentoo Foundation
> +# Distributed under the terms of the GNU General Public License v2
> +
> +# @ECLASS: ninja-utils.eclass
> +# @MAINTAINER:
> +# Michał Górny <[email protected]>
> +# Mike Gilbert <[email protected]>
> +# @AUTHOR:
> +# Michał Górny <[email protected]>
> +# Mike Gilbert <[email protected]>
> +# @BLURB: common bits to run dev-util/ninja builder
> +# @DESCRIPTION:
> +# This eclass provides a single function -- eninja -- that can be used
> +# to run the ninja builder alike emake. It does not define any
> +# dependencies, you need to depend on dev-util/ninja yourself. Since
> +# ninja is rarely used stand-alone, most of the time this eclass will
> +# be used indirectly by the eclasses for other build systems (CMake,
> +# Meson).
> +
> +if [[ -z ${_NINJA_UTILS_ECLASS} ]]; then
> +
> +case ${EAPI:-0} in
> +     0|1|3) die "EAPI=${EAPI:-0} is not supported (too old)";;
> +     # copied from cmake-utils
> +     2|4|5|6) ;;
> +     *) die "EAPI=${EAPI} is not yet supported" ;;
> +esac
> +
> +# @ECLASS-VARIABLE: NINJAOPTS
> +# @DEFAULT_UNSET
> +# @DESCRIPTION:
> +# The default set of options to pass to Ninja. Similar to MAKEOPTS,
> +# supposed to be set in make.conf. If unset, eninja() will convert
> +# MAKEOPTS instead.
> +
> +inherit multiprocessing
> +
> +# @FUNCTION: eninja
> +# @USAGE: [<args>...]
> +# @DESCRIPTION:
> +# Call Ninja, passing the NINJAOPTS (or converted MAKEOPTS), followed
> +# by the supplied arguments. This function dies if ninja fails. Starting
> +# with EAPI 6, it also supports being called via 'nonfatal'.
> +eninja() {
> +     local nonfatal_args=()
> +     [[ ${EAPI:-0} != [245] ]] && nonfatal_args+=( -n )
> +
> +     if [[ -z ${NINJAOPTS+set} ]]; then
> +             NINJAOPTS="-j$(makeopts_jobs) -l$(makeopts_loadavg 
> "${MAKEOPTS}" 0)"
> +     fi
> +     set -- ninja -v ${NINJAOPTS} "$@"
> +     echo "$@" >&2
> +     "$@" || die "${nonfatal_args[@]}" "${*} failed"
> +}
> +
> +_NINJA_UTILS_ECLASS=1
> +fi

Committed.

-- 
Best regards,
Michał Górny

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to