[gnome-continuous-yocto/gnomeostree-3.28-rocko: 1521/8267] siteinfo: Add mechanism to extend siteinfo information from BSP layer



commit ebc80fa30a98484b7fd1d568bd0f3d701a6f68d5
Author: Richard Purdie <richard purdie linuxfoundation org>
Date:   Fri Jul 22 15:25:43 2016 +0100

    siteinfo: Add mechanism to extend siteinfo information from BSP layer
    
    In order to add a new architecture or sub-architecture to OE, you currently
    need to tweak the table in siteinfo.bbclass. This adds a mechanism so this
    can be done from a BSP layer. It needs a function definition which needs
    a class file but can then be done with something like:
    
    def rp_testfunc2(archinfo, osinfo, targetinfo, d):
        archinfo['testarch'] = "little-endian bit-32"
        osinfo['testos'] = "common-linux"
        targetinfo['mymach-linux'] = "mymach-linux-common"
    
        return archinfo, osinfo, targetinfo
    
    SITEINFO_EXTRA_DATAFUNCS = "rp_testfunc2"
    
    [YOCTO #8554]
    
    (From OE-Core rev: 2718bb9f2eabc15e3ef7cb5d67f4331de4f751d6)
    
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 meta/classes/siteinfo.bbclass |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/meta/classes/siteinfo.bbclass b/meta/classes/siteinfo.bbclass
index 50141a3..03d4c4f 100644
--- a/meta/classes/siteinfo.bbclass
+++ b/meta/classes/siteinfo.bbclass
@@ -107,6 +107,14 @@ def siteinfo_data(d):
         "x86_64-mingw32": "bit-64",
     }
 
+    # Add in any extra user supplied data which may come from a BSP layer, removing the
+    # need to always change this class directly
+    extra_siteinfo = (d.getVar("SITEINFO_EXTRA_DATAFUNCS", True) or "").split()
+    for m in extra_siteinfo:
+        call = m + "(archinfo, osinfo, targetinfo, d)"
+        locs = { "archinfo" : archinfo, "osinfo" : osinfo, "targetinfo" : targetinfo, "d" : d}
+        archinfo, osinfo, targetinfo = bb.utils.better_eval(call, locs)
+
     hostarch = d.getVar("HOST_ARCH", True)
     hostos = d.getVar("HOST_OS", True)
     target = "%s-%s" % (hostarch, hostos)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]