distutils3.bbclass 2.3 KB

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