summaryrefslogtreecommitdiff
path: root/meta/classes/kernel-yocto.bbclass
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@windriver.com>2012-02-01 09:25:03 -0500
committerSaul Wold <sgw@linux.intel.com>2012-02-07 14:37:14 -0800
commit3e2ce87566124db8c78472f9a4f00ab26410f213 (patch)
tree3cf6788904c60520c4e1aec933a1b4fca5ab76ed /meta/classes/kernel-yocto.bbclass
parent00c2e80e8cae2db6e2c34b1291c615f7f146b070 (diff)
downloadopenembedded-core-3e2ce87566124db8c78472f9a4f00ab26410f213.tar.gz
openembedded-core-3e2ce87566124db8c78472f9a4f00ab26410f213.tar.bz2
openembedded-core-3e2ce87566124db8c78472f9a4f00ab26410f213.zip
linux-yocto: locate and use out of tree features specified on the SRC_URI
In a similar manner to calling the patch.bbclass to locate patches that were listed on the SRC_URI, it is also useful to query about 'other' items that are on the SRC_URI. In the case of linux-yocto, it allows us to know about kernel features that were specific on the URI and then apply them to the current tree. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Diffstat (limited to 'meta/classes/kernel-yocto.bbclass')
-rw-r--r--meta/classes/kernel-yocto.bbclass21
1 files changed, 21 insertions, 0 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 7fdefcf221..3130bf4512 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -10,6 +10,16 @@ def find_patches(d):
return patch_list
+def find_sccs(d):
+ sources=src_patches(d, True)
+ sources_list=[]
+ for s in sources:
+ base, ext = os.path.splitext(os.path.basename(s))
+ if ext and ext in ('.scc'):
+ sources_list.append(s)
+
+ return sources_list
+
do_patch() {
cd ${S}
if [ -f ${WORKDIR}/defconfig ]; then
@@ -42,6 +52,7 @@ do_patch() {
fi
patches="${@" ".join(find_patches(d))}"
+ sccs="${@" ".join(find_sccs(d))}"
# This loops through all patches, and looks for directories that do
# not already have feature descriptions. If a directory doesn't have
@@ -81,6 +92,16 @@ do_patch() {
fi
done
+ # look for any found scc files, and ensure they are added to the list
+ # of directories passsed to updateme
+ for s in ${sccs}; do
+ sdir=`dirname ${s}`
+ echo ${patch_dirs} | grep -q ${sdir}
+ if [ $? -ne 0 ]; then
+ patch_dirs="${patch_dirs} ${sdir}"
+ fi
+ done
+
# go through the patch directories and look for any scc feature files
# that were constructed above. If one is found, rename it to ".scc" so
# the kernel patching can see it.