]> code.ossystems Code Review - openembedded-core.git/commitdiff
distutils: Sync with OE.dev
authorRichard Purdie <richard@rex.(none)>
Sat, 5 Dec 2009 23:18:02 +0000 (23:18 +0000)
committerRichard Purdie <richard@rex.(none)>
Sat, 5 Dec 2009 23:18:02 +0000 (23:18 +0000)
Signed-off-by: Richard Purdie <richard@rex.(none)>
meta/classes/distutils-base.bbclass
meta/classes/distutils-common-base.bbclass [new file with mode: 0644]
meta/classes/distutils-native-base.bbclass [new file with mode: 0644]
meta/classes/distutils.bbclass

index 5d6d9981e015ec37b35a80086b309c0b906ce00d..2e151ded388ba5ebee26976933c920f7312ac2b7 100644 (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
 
diff --git a/meta/classes/distutils-common-base.bbclass b/meta/classes/distutils-common-base.bbclass
new file mode 100644 (file)
index 0000000..01bf9ea
--- /dev/null
@@ -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 \
+"
diff --git a/meta/classes/distutils-native-base.bbclass b/meta/classes/distutils-native-base.bbclass
new file mode 100644 (file)
index 0000000..2703fe0
--- /dev/null
@@ -0,0 +1,3 @@
+DEPENDS  += "${@["python-native", ""][(bb.data.getVar('PACKAGES', d, 1) == '')]}"
+
+inherit distutils-common-base
index 0b9bdfe1a9619f69042d3c9171c46b6b6d3e8220..245ef7d85996c4d1c10c3417780517c66f2e7cb8 100644 (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 {} \;
 }