From 7b849ae2f5c348bd9c80b5ae46e7d2bc208bd6bb Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 9 Nov 2009 16:04:51 +0000 Subject: native.bbclass: Fix DEPENDS handling for BBCLASSEXTEND use Signed-off-by: Richard Purdie --- meta/classes/native.bbclass | 50 +++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 29 deletions(-) (limited to 'meta/classes/native.bbclass') diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass index 8a5e5f133f..6b5a5919b2 100644 --- a/meta/classes/native.bbclass +++ b/meta/classes/native.bbclass @@ -82,46 +82,38 @@ do_stage () { PKG_CONFIG_PATH .= "${EXTRA_NATIVE_PKGCONFIG_PATH}" PKG_CONFIG_SYSROOT_DIR = "" +ORIG_DEPENDS := "${DEPENDS}" + +DEPENDS_virtclass-native ?= "${ORIG_DEPENDS}" + python __anonymous () { # If we've a legacy native do_stage, we need to neuter do_install stagefunc = bb.data.getVar('do_stage', d, True) if (stagefunc.strip() != "do_stage_native" and stagefunc.strip() != "autotools_stage_all") and bb.data.getVar('AUTOTOOLS_NATIVE_STAGE_INSTALL', d, 1) == "1": bb.data.setVar("do_install", " :", d) - pn = bb.data.getVar("PN", d, True) - depends = bb.data.getVar("DEPENDS", d, True) - deps = bb.utils.explode_deps(depends) - newdeps = [] if "native" in (bb.data.getVar('BBCLASSEXTEND', d, True) or ""): - autoextend = True - else: - autoextend = False - for dep in deps: - if dep.endswith("-cross"): - if autoextend: + pn = bb.data.getVar("PN", d, True) + depends = bb.data.getVar("DEPENDS_virtclass-native", d, True) + deps = bb.utils.explode_deps(depends) + newdeps = [] + for dep in deps: + if dep.endswith("-cross"): newdeps.append(dep.replace("-cross", "-native")) - else: - bb.note("%s has depends %s which ends in -cross?" % (pn, dep)) - newdeps.append(dep) - elif not dep.endswith("-native"): - if autoextend: + elif not dep.endswith("-native"): + newdeps.append(dep + "-native") else: - bb.note("%s has depends %s which doesn't end in -native?" % (pn, dep)) newdeps.append(dep) - else: - newdeps.append(dep) - bb.data.setVar("DEPENDS", " ".join(newdeps), d) - provides = bb.data.getVar("PROVIDES", d, True) - for prov in provides.split(): - if prov.find(pn) != -1: - continue - if not prov.endswith("-native"): - if autoextend: + bb.data.setVar("DEPENDS_virtclass-native", " ".join(newdeps), d) + provides = bb.data.getVar("PROVIDES", d, True) + for prov in provides.split(): + if prov.find(pn) != -1: + continue + if not prov.endswith("-native"): + provides = provides.replace(prov, prov + "-native") - #else: - # bb.note("%s has rouge PROVIDES of %s which doesn't end in -sdk?" % (pn, prov)) - bb.data.setVar("PROVIDES", provides, d) - bb.data.setVar("OVERRIDES", bb.data.getVar("OVERRIDES", d, False) + ":virtclass-native", d) + bb.data.setVar("PROVIDES", provides, d) + bb.data.setVar("OVERRIDES", bb.data.getVar("OVERRIDES", d, False) + ":virtclass-native", d) } -- cgit v1.2.3-54-g00ecf