From 2b7ea6f52dfa7c6cdbbb426e13efba1b4914e7b9 Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Thu, 19 Aug 2010 09:53:31 -0700 Subject: Fix the package_arch=machine_arch logic to use FILESPATH* - Use FILESPATHPKG and FILESPATHBASE to locate the machine specific dirs - Use the fetch urldata rather than poking at urls ourselves - Move the logic into utils.bbclass as def'd python functions - Simplify Signed-off-by: Chris Larson --- classes/utils.bbclass | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'classes/utils.bbclass') diff --git a/classes/utils.bbclass b/classes/utils.bbclass index 7740ea3ac3..4840c4f233 100644 --- a/classes/utils.bbclass +++ b/classes/utils.bbclass @@ -38,6 +38,24 @@ def oe_filter(f, str, d): def oe_filter_out(f, str, d): return oe.utils.str_filter_out(f, str, d) +def machine_paths(d): + """List any existing machine specific filespath directories""" + machine = d.getVar("MACHINE", True) + filespathpkg = d.getVar("FILESPATHPKG", True).split(":") + for basepath in d.getVar("FILESPATHBASE", True).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)) + urldatadict = bb.fetch.init(d.getVar("SRC_URI", True).split(), d, True) + for urldata in (urldata for urldata in urldatadict.itervalues() + if urldata.type == "file"): + if any(urldata.path.startswith(mp + "/") for mp in machinepaths): + return True def subprocess_setup(): import signal -- cgit 1.2.3-korg