diff options
author | Roman I Khimov <khimov@altell.ru> | 2010-03-23 13:27:40 +0300 |
---|---|---|
committer | Roman I Khimov <khimov@altell.ru> | 2010-03-25 09:28:25 +0300 |
commit | e0f9409803d6edc14608828967c0c52b5a2d182e (patch) | |
tree | 89172fda5bdc555fdcbc189fed73fcda1465e771 /classes | |
parent | 99962c42b37b4ccc256d45540016309904ce7c77 (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.bbclass | 13 | ||||
-rw-r--r-- | 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 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" |