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