summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/distutils-base.bbclass14
-rw-r--r--meta/classes/distutils-common-base.bbclass30
-rw-r--r--meta/classes/distutils-native-base.bbclass3
-rw-r--r--meta/classes/distutils.bbclass13
4 files changed, 44 insertions, 16 deletions
diff --git a/meta/classes/distutils-base.bbclass b/meta/classes/distutils-base.bbclass
index 5d6d9981e0..2e151ded38 100644
--- a/meta/classes/distutils-base.bbclass
+++ b/meta/classes/distutils-base.bbclass
@@ -1,17 +1,5 @@
1EXTRA_OEMAKE = ""
2DEPENDS += "${@["python-native python", ""][(bb.data.getVar('PACKAGES', d, 1) == '')]}" 1DEPENDS += "${@["python-native python", ""][(bb.data.getVar('PACKAGES', d, 1) == '')]}"
3RDEPENDS += "python-core" 2RDEPENDS += "python-core"
4 3
5def python_dir(d): 4inherit distutils-common-base
6 staging_incdir = bb.data.getVar( "STAGING_INCDIR", d, 1 )
7 if os.path.exists( "%s/python2.5" % staging_incdir ): return "python2.5"
8 if os.path.exists( "%s/python2.4" % staging_incdir ): return "python2.4"
9 if os.path.exists( "%s/python2.3" % staging_incdir ): return "python2.3"
10 raise "No Python in STAGING_INCDIR. Forgot to build python-native ?"
11
12PYTHON_DIR = "${@python_dir(d)}"
13FILES_${PN} = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"
14FILES_${PN}-dbg = "${libdir}/${PYTHON_DIR}/site-packages/.debug \
15 ${libdir}/${PYTHON_DIR}/site-packages/*/.debug \
16 ${libdir}/${PYTHON_DIR}/site-packages/*/*/.debug"
17 5
diff --git a/meta/classes/distutils-common-base.bbclass b/meta/classes/distutils-common-base.bbclass
new file mode 100644
index 0000000000..01bf9eaeba
--- /dev/null
+++ b/meta/classes/distutils-common-base.bbclass
@@ -0,0 +1,30 @@
1EXTRA_OEMAKE = ""
2
3export STAGING_INCDIR
4export STAGING_LIBDIR
5
6def python_dir(d):
7 import os, bb
8 staging_incdir = bb.data.getVar( "STAGING_INCDIR", d, 1 )
9 for majmin in "2.6 2.5 2.4 2.3".split():
10 if os.path.exists( "%s/python%s" % ( staging_incdir, majmin ) ): return "python%s" % majmin
11 if not "python-native" in bb.data.getVar( "DEPENDS", d, 1 ).split():
12 raise "No Python in STAGING_INCDIR. Forgot to build python-native ?"
13 return "INVALID"
14
15PYTHON_DIR = "${@python_dir(d)}"
16
17PACKAGES = "${PN}-dev ${PN}-dbg ${PN}-doc ${PN}"
18
19FILES_${PN} = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"
20
21FILES_${PN}-dev += "\
22 ${datadir}/pkgconfig \
23 ${libdir}/pkgconfig \
24 ${libdir}/${PYTHON_DIR}/site-packages/*.la \
25"
26FILES_${PN}-dbg = "\
27 ${libdir}/${PYTHON_DIR}/site-packages/.debug \
28 ${libdir}/${PYTHON_DIR}/site-packages/*/.debug \
29 ${libdir}/${PYTHON_DIR}/site-packages/*/*/.debug \
30"
diff --git a/meta/classes/distutils-native-base.bbclass b/meta/classes/distutils-native-base.bbclass
new file mode 100644
index 0000000000..2703fe0740
--- /dev/null
+++ b/meta/classes/distutils-native-base.bbclass
@@ -0,0 +1,3 @@
1DEPENDS += "${@["python-native", ""][(bb.data.getVar('PACKAGES', d, 1) == '')]}"
2
3inherit distutils-common-base
diff --git a/meta/classes/distutils.bbclass b/meta/classes/distutils.bbclass
index 0b9bdfe1a9..245ef7d859 100644
--- a/meta/classes/distutils.bbclass
+++ b/meta/classes/distutils.bbclass
@@ -25,10 +25,10 @@ distutils_stage_headers() {
25} 25}
26 26
27distutils_stage_all() { 27distutils_stage_all() {
28 install -d ${STAGING_DIR_HOST}${prefix}/${PYTHON_DIR}/site-packages
29 STAGING_INCDIR=${STAGING_INCDIR} \ 28 STAGING_INCDIR=${STAGING_INCDIR} \
30 STAGING_LIBDIR=${STAGING_LIBDIR} \ 29 STAGING_LIBDIR=${STAGING_LIBDIR} \
31 PYTHONPATH=${STAGING_DIR_HOST}${prefix}/${PYTHON_DIR}/site-packages \ 30 install -d ${STAGING_DIR_HOST}${libdir}/${PYTHON_DIR}/site-packages
31 PYTHONPATH=${STAGING_DIR_HOST}${libdir}/${PYTHON_DIR}/site-packages \
32 BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ 32 BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
33 ${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \ 33 ${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \
34 oefatal "python setup.py install (stage) execution failed." 34 oefatal "python setup.py install (stage) execution failed."
@@ -60,7 +60,14 @@ distutils_do_install() {
60 fi 60 fi
61 61
62 rm -f ${D}${libdir}/${PYTHON_DIR}/site-packages/easy-install.pth 62 rm -f ${D}${libdir}/${PYTHON_DIR}/site-packages/easy-install.pth
63 63
64 #
65 # FIXME: Bandaid against wrong datadir computation
66 #
67 if test -e ${D}${datadir}/share; then
68 mv -f ${D}${datadir}/share/* ${D}${datadir}/
69 fi
70
64 find ${D}${libdir}/${PYTHON_DIR}/site-packages -iname '*.pyo' -exec rm {} \; 71 find ${D}${libdir}/${PYTHON_DIR}/site-packages -iname '*.pyo' -exec rm {} \;
65} 72}
66 73