[oe] [PATCH] bitbake.conf: Add one recipe identifying OVERRIDE based on recipe type

Khem Raj raj.khem at gmail.com
Fri Oct 22 21:39:27 UTC 2010


It adds an override based on type of recipe
e.g. recipes ending with usual suffixes like -native -cross, -sdk
add the same to overrides with out leading '-'
It also add the same override for BBCLASSEXTEND
For normal recipes we add 'target' to overrides

This will give up better control over defining and combining
recipes into using BBCLASSEXTEND and still have finer control
if needed. We wont require to have virtclass-xxx overrides
anymore

Signed-off-by: Khem Raj <raj.khem at gmail.com>
---
 classes/utils.bbclass |    3 +++
 conf/bitbake.conf     |    2 ++
 lib/oe/utils.py       |    8 ++++++++
 3 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/classes/utils.bbclass b/classes/utils.bbclass
index 10d49ce..7c96509 100644
--- a/classes/utils.bbclass
+++ b/classes/utils.bbclass
@@ -36,6 +36,9 @@ def base_both_contain(variable1, variable2, checkvalue, d):
 def base_prune_suffix(var, suffixes, d):
     return oe.utils.prune_suffix(var, suffixes, d)
 
+def base_get_suffix(var, suffixes, d):
+    return oe.utils.get_suffix(var, suffixes, d)
+
 def oe_filter(f, str, d):
     return oe.utils.str_filter(f, str, d)
 
diff --git a/conf/bitbake.conf b/conf/bitbake.conf
index 539ab3d..2f3dd6b 100644
--- a/conf/bitbake.conf
+++ b/conf/bitbake.conf
@@ -195,6 +195,8 @@ MACHINE_KERNEL_PR = ""
 # otherwise it is the same as PN and P
 SPECIAL_PKGSUFFIX = "-native -cross -initial -intermediate -nativesdk -crosssdk -cross-canadian -sdk"
 BPN = "${@base_prune_suffix('${PN}', '${SPECIAL_PKGSUFFIX}'.split(), d)}"
+# Add a _target override so we can do target specific overrides when using BBCLASSEXTEND
+OVERRIDES_prepend = "${@base_get_suffix('${PN}', '${SPECIAL_PKGSUFFIX}'.split(), d)}:"
 BP = "${BPN}-${PV}"
 
 # Package info.
diff --git a/lib/oe/utils.py b/lib/oe/utils.py
index 2169ed2..4822864 100644
--- a/lib/oe/utils.py
+++ b/lib/oe/utils.py
@@ -67,6 +67,14 @@ def prune_suffix(var, suffixes, d):
             return var.replace(suffix, "")
     return var
 
+def get_suffix(var, suffixes, d):
+    # See if var ends with any of the suffixes listed and
+    # if found return it otherwise return "target'
+    for suffix in suffixes:
+        if var.endswith(suffix):
+	    return suffix[1:]
+    return "target"
+
 def str_filter(f, str, d):
     from re import match
     return " ".join(filter(lambda x: match(f, x, 0), str.split()))
-- 
1.7.1





More information about the Openembedded-devel mailing list