diff options
author | Ross Burton <ross.burton@intel.com> | 2019-12-10 13:42:06 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-12-28 23:25:34 +0000 |
commit | de1b57acedaaf01e10059792eb0031ceafcc8b97 (patch) | |
tree | eec645c05fd909cfa70c373f4e8adfc547ef82ff | |
parent | 497ddaca42f805c119c022d77960d1eecc01436b (diff) | |
download | openembedded-core-contrib-de1b57acedaaf01e10059792eb0031ceafcc8b97.tar.gz |
distutils3: do out of tree builds
Pass --build-base so the build tree is a location we specify, which we
can ensure is empty when building.
This means we can stub out do_configure entirely and use cleandirs
instead.
When installing we need to tell it to do a build so that we can pass
--build-base, so also pass --skip-build to avoid the potential rebuild.
Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r-- | meta/classes/distutils3.bbclass | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/meta/classes/distutils3.bbclass b/meta/classes/distutils3.bbclass index a277921dd0..7356b5245a 100644 --- a/meta/classes/distutils3.bbclass +++ b/meta/classes/distutils3.bbclass @@ -1,5 +1,8 @@ inherit distutils3-base +B = "${WORKDIR}/build" +distutils_do_configure[cleandirs] = "${B}" + DISTUTILS_BUILD_ARGS ?= "" DISTUTILS_INSTALL_ARGS ?= "--root=${D} \ --prefix=${prefix} \ @@ -10,28 +13,28 @@ DISTUTILS_PYTHON = "python3" DISTUTILS_PYTHON_class-native = "nativepython3" distutils3_do_configure() { - if [ "${CLEANBROKEN}" != "1" ] ; then - NO_FETCH_BUILD=1 \ - ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py clean ${DISTUTILS_BUILD_ARGS} - fi + : } distutils3_do_compile() { + cd ${S} NO_FETCH_BUILD=1 \ STAGING_INCDIR=${STAGING_INCDIR} \ STAGING_LIBDIR=${STAGING_LIBDIR} \ - ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \ - build ${DISTUTILS_BUILD_ARGS} || \ + ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} ${S}/setup.py \ + build --build-base=${B} ${DISTUTILS_BUILD_ARGS} || \ bbfatal_log "'${PYTHON_PN} setup.py build ${DISTUTILS_BUILD_ARGS}' execution failed." } distutils3_do_compile[vardepsexclude] = "MACHINE" distutils3_do_install() { + cd ${S} install -d ${D}${PYTHON_SITEPACKAGES_DIR} STAGING_INCDIR=${STAGING_INCDIR} \ STAGING_LIBDIR=${STAGING_LIBDIR} \ PYTHONPATH=${D}${PYTHON_SITEPACKAGES_DIR} \ - ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install ${DISTUTILS_INSTALL_ARGS} || \ + ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} ${S}/setup.py \ + build --build-base=${B} install --skip-build ${DISTUTILS_INSTALL_ARGS} || \ bbfatal_log "'${PYTHON_PN} setup.py install ${DISTUTILS_INSTALL_ARGS}' execution failed." # support filenames with *spaces* |