diff options
Diffstat (limited to 'poky/meta/classes/utils.bbclass')
-rw-r--r-- | poky/meta/classes/utils.bbclass | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/poky/meta/classes/utils.bbclass b/poky/meta/classes/utils.bbclass index 120bcc64a6..cd3d05709e 100644 --- a/poky/meta/classes/utils.bbclass +++ b/poky/meta/classes/utils.bbclass @@ -1,3 +1,22 @@ +def machine_paths(d): + """List any existing machine specific filespath directories""" + machine = d.getVar("MACHINE") + filespathpkg = d.getVar("FILESPATHPKG").split(":") + for basepath in d.getVar("FILESPATHBASE").split(":"): + for pkgpath in filespathpkg: + machinepath = os.path.join(basepath, pkgpath, machine) + if os.path.isdir(machinepath): + yield machinepath + +def is_machine_specific(d): + """Determine whether the current recipe is machine specific""" + machinepaths = set(machine_paths(d)) + srcuri = d.getVar("SRC_URI").split() + for url in srcuri: + fetcher = bb.fetch2.Fetch([srcuri], d) + if url.startswith("file://"): + if any(fetcher.localpath(url).startswith(mp + "/") for mp in machinepaths): + return True oe_soinstall() { # Purpose: Install shared library file and |