On Thu, 24 Jan 2013 00:23:57 +0100
Michał Górny <mgo...@gentoo.org> wrote:

> This is mostly a proof-of-concept. If approved, I will work on moving
> the code into a separate eclass, possibly named 'multilib-build' ;).
> ---
>  gx86/eclass/autotools-multilib.eclass | 24 +++++++++++++++++++++---
>  1 file changed, 21 insertions(+), 3 deletions(-)
> 
> diff --git a/gx86/eclass/autotools-multilib.eclass
> b/gx86/eclass/autotools-multilib.eclass index 7c8697a..eef7bcc 100644
> --- a/gx86/eclass/autotools-multilib.eclass
> +++ b/gx86/eclass/autotools-multilib.eclass
> @@ -32,7 +32,23 @@ inherit autotools-utils multilib
>  
>  EXPORT_FUNCTIONS src_configure src_compile src_test src_install
>  
> -IUSE=multilib
> +# Declare all of them, profiles will control their visibility.
> +IUSE='abi_x86_32 abi_x86_64'
> +
> +# @FUNCTION: _autotools-multilib_get_enabled_abis
> +# @DESCRIPTION:
> +# Get the list of enabled ABIs. The returned names are suitable for
> use +# with multilib.eclass.
> +#
> +# If multilib is not enabled or not supported, returns an empty list.
> +
> +     debug-print-function ${FUNCNAME} "${@}"
> +
> +     if use amd64; then
> +             use abi_x86_64 && echo amd64
> +             use abi_x86_32 && echo x86
> +     fi
> +}

I would rather iterate over a variable than hardcoding and duplicating
it here:

MULTILIB_ABIS='abi_x86_32:x86 abi_x86_64:amd64'
IUSE=""
for i in $MULTILIB_ABIS ; do
   IUSE+=" ${i%:*}"
done

_autotools-multilib_get_enabled_abis() {
   for i in $MULTILIB_ABIS ; do
      use ${i%:*} && echo ${i#*:}
   done
}

(maybe protect it with has_multilib_profile if you wish)    

[...]

Alexis.

Reply via email to