[OE-core] [PATCH 1/9] distutils: Consider S != B case

Richard Purdie richard.purdie at linuxfoundation.org
Wed Feb 10 18:29:17 UTC 2016


On Wed, 2016-02-10 at 17:43 +0000, Khem Raj wrote:
> out of tree builds can break the assumption about setup.py being in
> the
> current directory, seen especially with devtool when using
> externalsrc
> many python modules cant build since it cant find setup.py in devtool
> workspace
> 
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ---
>  meta/classes/distutils.bbclass  | 27 +++++++++++++++++----------
>  meta/classes/distutils3.bbclass | 26 +++++++++++++++++++-------
>  2 files changed, 36 insertions(+), 17 deletions(-)
> 
> diff --git a/meta/classes/distutils.bbclass
> b/meta/classes/distutils.bbclass
> index cd06713..d9e0086 100644
> --- a/meta/classes/distutils.bbclass
> +++ b/meta/classes/distutils.bbclass
> @@ -8,44 +8,51 @@ DISTUTILS_INSTALL_ARGS ?= "--prefix=${D}/${prefix}
> \
>      --install-data=${D}/${datadir}"
>  
>  distutils_do_compile() {
> -         STAGING_INCDIR=${STAGING_INCDIR} \
> -         STAGING_LIBDIR=${STAGING_LIBDIR} \
> -         BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
> -         ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN}
> setup.py build ${DISTUTILS_BUILD_ARGS} || \
> -         bbfatal "${PYTHON_PN} setup.py build execution failed."
> +        cwd=$PWD;cd ${S}
> +        STAGING_INCDIR=${STAGING_INCDIR} \
> +        STAGING_LIBDIR=${STAGING_LIBDIR} \
> +        BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
> +        ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN}
> ${S}/setup.py build --build-base=${B} ${DISTUTILS_BUILD_ARGS} || \
> +        bbfatal "${PYTHON_PN} setup.py build execution failed."
> +        cd $cwd
>  }

I still can't help feeling we're putting far too much boiler plate into
these functions and putting in too many redundant checks, "just to be
sure".

If we really want to add the cd and so on, the [dirs] function flag
should be used rather than playing with cwd like this IMO.

Cheers,

Richard




More information about the Openembedded-core mailing list