distutils: Sync with OE.dev

Signed-off-by: Richard Purdie <richard@rex.(none)>
This commit is contained in:
Richard Purdie 2009-12-05 23:18:02 +00:00
parent c7d4ad8e9d
commit 288e62a221
4 changed files with 44 additions and 16 deletions

View File

@ -1,17 +1,5 @@
EXTRA_OEMAKE = ""
DEPENDS += "${@["python-native python", ""][(bb.data.getVar('PACKAGES', d, 1) == '')]}"
RDEPENDS += "python-core"
def python_dir(d):
staging_incdir = bb.data.getVar( "STAGING_INCDIR", d, 1 )
if os.path.exists( "%s/python2.5" % staging_incdir ): return "python2.5"
if os.path.exists( "%s/python2.4" % staging_incdir ): return "python2.4"
if os.path.exists( "%s/python2.3" % staging_incdir ): return "python2.3"
raise "No Python in STAGING_INCDIR. Forgot to build python-native ?"
PYTHON_DIR = "${@python_dir(d)}"
FILES_${PN} = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"
FILES_${PN}-dbg = "${libdir}/${PYTHON_DIR}/site-packages/.debug \
${libdir}/${PYTHON_DIR}/site-packages/*/.debug \
${libdir}/${PYTHON_DIR}/site-packages/*/*/.debug"
inherit distutils-common-base

View File

@ -0,0 +1,30 @@
EXTRA_OEMAKE = ""
export STAGING_INCDIR
export STAGING_LIBDIR
def python_dir(d):
import os, bb
staging_incdir = bb.data.getVar( "STAGING_INCDIR", d, 1 )
for majmin in "2.6 2.5 2.4 2.3".split():
if os.path.exists( "%s/python%s" % ( staging_incdir, majmin ) ): return "python%s" % majmin
if not "python-native" in bb.data.getVar( "DEPENDS", d, 1 ).split():
raise "No Python in STAGING_INCDIR. Forgot to build python-native ?"
return "INVALID"
PYTHON_DIR = "${@python_dir(d)}"
PACKAGES = "${PN}-dev ${PN}-dbg ${PN}-doc ${PN}"
FILES_${PN} = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"
FILES_${PN}-dev += "\
${datadir}/pkgconfig \
${libdir}/pkgconfig \
${libdir}/${PYTHON_DIR}/site-packages/*.la \
"
FILES_${PN}-dbg = "\
${libdir}/${PYTHON_DIR}/site-packages/.debug \
${libdir}/${PYTHON_DIR}/site-packages/*/.debug \
${libdir}/${PYTHON_DIR}/site-packages/*/*/.debug \
"

View File

@ -0,0 +1,3 @@
DEPENDS += "${@["python-native", ""][(bb.data.getVar('PACKAGES', d, 1) == '')]}"
inherit distutils-common-base

View File

@ -25,10 +25,10 @@ distutils_stage_headers() {
}
distutils_stage_all() {
install -d ${STAGING_DIR_HOST}${prefix}/${PYTHON_DIR}/site-packages
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
PYTHONPATH=${STAGING_DIR_HOST}${prefix}/${PYTHON_DIR}/site-packages \
install -d ${STAGING_DIR_HOST}${libdir}/${PYTHON_DIR}/site-packages
PYTHONPATH=${STAGING_DIR_HOST}${libdir}/${PYTHON_DIR}/site-packages \
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \
oefatal "python setup.py install (stage) execution failed."
@ -60,7 +60,14 @@ distutils_do_install() {
fi
rm -f ${D}${libdir}/${PYTHON_DIR}/site-packages/easy-install.pth
#
# FIXME: Bandaid against wrong datadir computation
#
if test -e ${D}${datadir}/share; then
mv -f ${D}${datadir}/share/* ${D}${datadir}/
fi
find ${D}${libdir}/${PYTHON_DIR}/site-packages -iname '*.pyo' -exec rm {} \;
}