[oe-commits] Roman I Khimov : distutils-common-base: move Python dir detection to separate class
git version control
git at git.openembedded.org
Thu Mar 25 06:32:43 UTC 2010
Module: openembedded.git
Branch: org.openembedded.dev
Commit: e0f9409803d6edc14608828967c0c52b5a2d182e
URL: http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=e0f9409803d6edc14608828967c0c52b5a2d182e
Author: Roman I Khimov <khimov at altell.ru>
Date: Tue Mar 23 13:27:40 2010 +0300
distutils-common-base: move Python dir detection to separate class
Allows to inherit that in packages containing Python extensions but still tightly
control packaging of those extensions. Mainly for the cases where you want
those python modules/extensions/parts to be packaged separately from the main
package in order not to introduce python dependency where you don't need it.
Technically, you can do it with distutils-common-base, but it might require
more FILES_* work than with python-dir.
Introduce PYTHON_SITEPACKAGES_DIR along the way, site-packages directory is
referenced frequently enough within class files, but some recipes also pack this
directory as
${libdir}/python2.5/site-packages
${libdir}/python2.6/site-packages
${libdir}/python*/site-packages
/usr/lib/python*/site-packages
${libdir}/*/site-packages
all of which are not perfect.
Signed-off-by: Roman I Khimov <khimov at altell.ru>
---
classes/distutils-common-base.bbclass | 13 ++-----------
classes/python-dir.bbclass | 11 +++++++++++
2 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/classes/distutils-common-base.bbclass b/classes/distutils-common-base.bbclass
index 87578b7..b6dce7e 100644
--- a/classes/distutils-common-base.bbclass
+++ b/classes/distutils-common-base.bbclass
@@ -1,19 +1,10 @@
+inherit python-dir
+
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}/*"
diff --git a/classes/python-dir.bbclass b/classes/python-dir.bbclass
new file mode 100644
index 0000000..d631a5c
--- /dev/null
+++ b/classes/python-dir.bbclass
@@ -0,0 +1,11 @@
+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)}"
+PYTHON_SITEPACKAGES_DIR = "${libdir}/${PYTHON_DIR}/site-packages"
More information about the Openembedded-commits
mailing list