summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorRoman I Khimov <khimov@altell.ru>2010-03-23 13:27:40 +0300
committerRoman I Khimov <khimov@altell.ru>2010-03-25 09:28:25 +0300
commite0f9409803d6edc14608828967c0c52b5a2d182e (patch)
tree89172fda5bdc555fdcbc189fed73fcda1465e771 /classes
parent99962c42b37b4ccc256d45540016309904ce7c77 (diff)
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@altell.ru>
Diffstat (limited to 'classes')
-rw-r--r--classes/distutils-common-base.bbclass13
-rw-r--r--classes/python-dir.bbclass11
2 files changed, 13 insertions, 11 deletions
diff --git a/classes/distutils-common-base.bbclass b/classes/distutils-common-base.bbclass
index 87578b773f..b6dce7e583 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 0000000000..d631a5c3ff
--- /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"