From 2718bb9f2eabc15e3ef7cb5d67f4331de4f751d6 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 22 Jul 2016 15:25:43 +0100 Subject: [PATCH] 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] Signed-off-by: Richard Purdie --- meta/classes/siteinfo.bbclass | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/meta/classes/siteinfo.bbclass b/meta/classes/siteinfo.bbclass index 50141a353f..03d4c4fd20 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) -- 2.40.1