summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2019-12-10 13:42:06 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-12-28 23:25:34 +0000
commitde1b57acedaaf01e10059792eb0031ceafcc8b97 (patch)
treeeec645c05fd909cfa70c373f4e8adfc547ef82ff /meta/classes
parent497ddaca42f805c119c022d77960d1eecc01436b (diff)
downloadopenembedded-core-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>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/distutils3.bbclass17
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*