| Andrew Geissler | 9aee500 | 2022-03-30 16:27:02 +0000 | [diff] [blame] | 1 | inherit distutils3-base | 
|  | 2 |  | 
|  | 3 | B = "${WORKDIR}/build" | 
|  | 4 | distutils_do_configure[cleandirs] = "${B}" | 
|  | 5 |  | 
|  | 6 | DISTUTILS_BUILD_ARGS ?= "" | 
|  | 7 | DISTUTILS_INSTALL_ARGS ?= "--root=${D} \ | 
|  | 8 | --prefix=${prefix} \ | 
|  | 9 | --install-lib=${PYTHON_SITEPACKAGES_DIR} \ | 
|  | 10 | --install-data=${datadir}" | 
|  | 11 |  | 
|  | 12 | DISTUTILS_PYTHON = "python3" | 
|  | 13 | DISTUTILS_PYTHON:class-native = "nativepython3" | 
|  | 14 |  | 
|  | 15 | DISTUTILS_SETUP_PATH ?= "${S}" | 
|  | 16 |  | 
|  | 17 | python __anonymous() { | 
|  | 18 | bb.warn("distutils3.bbclass is deprecated, please use setuptools3.bbclass instead") | 
|  | 19 | } | 
|  | 20 |  | 
|  | 21 | distutils3_do_configure() { | 
|  | 22 | : | 
|  | 23 | } | 
|  | 24 |  | 
|  | 25 | distutils3_do_compile() { | 
|  | 26 | cd ${DISTUTILS_SETUP_PATH} | 
|  | 27 | NO_FETCH_BUILD=1 \ | 
|  | 28 | STAGING_INCDIR=${STAGING_INCDIR} \ | 
|  | 29 | STAGING_LIBDIR=${STAGING_LIBDIR} \ | 
|  | 30 | ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \ | 
|  | 31 | build --build-base=${B} ${DISTUTILS_BUILD_ARGS} || \ | 
|  | 32 | bbfatal_log "'${PYTHON_PN} setup.py build ${DISTUTILS_BUILD_ARGS}' execution failed." | 
|  | 33 | } | 
|  | 34 | distutils3_do_compile[vardepsexclude] = "MACHINE" | 
|  | 35 |  | 
|  | 36 | distutils3_do_install() { | 
|  | 37 | cd ${DISTUTILS_SETUP_PATH} | 
|  | 38 | install -d ${D}${PYTHON_SITEPACKAGES_DIR} | 
|  | 39 | STAGING_INCDIR=${STAGING_INCDIR} \ | 
|  | 40 | STAGING_LIBDIR=${STAGING_LIBDIR} \ | 
|  | 41 | PYTHONPATH=${D}${PYTHON_SITEPACKAGES_DIR} \ | 
|  | 42 | ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \ | 
|  | 43 | build --build-base=${B} install --skip-build ${DISTUTILS_INSTALL_ARGS} || \ | 
|  | 44 | bbfatal_log "'${PYTHON_PN} setup.py install ${DISTUTILS_INSTALL_ARGS}' execution failed." | 
|  | 45 |  | 
|  | 46 | # support filenames with *spaces* | 
|  | 47 | find ${D} -name "*.py" -exec grep -q ${D} {} \; \ | 
|  | 48 | -exec sed -i -e s:${D}::g {} \; | 
|  | 49 |  | 
|  | 50 | for i in ${D}${bindir}/* ${D}${sbindir}/*; do | 
|  | 51 | if [ -f "$i" ]; then | 
|  | 52 | sed -i -e s:${PYTHON}:${USRBINPATH}/env\ ${DISTUTILS_PYTHON}:g $i | 
|  | 53 | sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i | 
|  | 54 | fi | 
|  | 55 | done | 
|  | 56 |  | 
|  | 57 | rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/easy-install.pth | 
|  | 58 |  | 
|  | 59 | # | 
|  | 60 | # FIXME: Bandaid against wrong datadir computation | 
|  | 61 | # | 
|  | 62 | if [ -e ${D}${datadir}/share ]; then | 
|  | 63 | mv -f ${D}${datadir}/share/* ${D}${datadir}/ | 
|  | 64 | rmdir ${D}${datadir}/share | 
|  | 65 | fi | 
|  | 66 | } | 
|  | 67 | distutils3_do_install[vardepsexclude] = "MACHINE" | 
|  | 68 |  | 
|  | 69 | EXPORT_FUNCTIONS do_configure do_compile do_install | 
|  | 70 |  | 
|  | 71 | export LDSHARED="${CCLD} -shared" |