diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-06-13 14:36:12 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-06-13 22:38:06 +0100 |
commit | 0a641fea281f4634c377596398e4e876dbfb4af4 (patch) | |
tree | 0fade6926aec52358f41c9ab409cbb84170287cd /meta/classes/nativesdk.bbclass | |
parent | e112d46c9fdf4f2c834a6c50627767479a1da43c (diff) | |
download | poky-0a641fea281f4634c377596398e4e876dbfb4af4.tar.gz |
nativesdk.bbclass: Correct ordering of manipulations
OVERDIDES is the key variable that needs to be set prior to data finalisation.
The other variables should be manipulated after finalisation so any
DEPENDS_prepend and _append are accounted for. This patch ensures this is
the case.
The PACKAGES maniupulations are not enabled at this time as they
don't function 100% correctly yet.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/nativesdk.bbclass')
-rw-r--r-- | meta/classes/nativesdk.bbclass | 53 |
1 files changed, 37 insertions, 16 deletions
diff --git a/meta/classes/nativesdk.bbclass b/meta/classes/nativesdk.bbclass index 644e73121b..3fe4bf9a07 100644 --- a/meta/classes/nativesdk.bbclass +++ b/meta/classes/nativesdk.bbclass | |||
@@ -62,27 +62,48 @@ python nativesdk_virtclass_handler () { | |||
62 | if not pn.endswith("-nativesdk"): | 62 | if not pn.endswith("-nativesdk"): |
63 | return | 63 | return |
64 | 64 | ||
65 | depends = bb.data.getVar("DEPENDS", e.data, True) | 65 | bb.data.setVar("OVERRIDES", bb.data.getVar("OVERRIDES", e.data, False) + ":virtclass-nativesdk", e.data) |
66 | deps = bb.utils.explode_deps(depends) | 66 | } |
67 | newdeps = [] | 67 | |
68 | for dep in deps: | 68 | python () { |
69 | if dep.endswith("-native") or dep.endswith("-cross"): | 69 | pn = bb.data.getVar("PN", d, True) |
70 | newdeps.append(dep) | 70 | if not pn.endswith("-nativesdk"): |
71 | elif dep.endswith("-gcc-intermediate") or dep.endswith("-gcc-initial") or dep.endswith("-gcc") or dep.endswith("-g++"): | 71 | return |
72 | newdeps.append(dep + "-crosssdk") | 72 | |
73 | elif not dep.endswith("-nativesdk"): | 73 | def map_dependencies(varname, d, suffix = ""): |
74 | newdeps.append(dep + "-nativesdk") | 74 | if suffix: |
75 | else: | 75 | varname = varname + "_" + suffix |
76 | newdeps.append(dep) | 76 | deps = bb.data.getVar(varname, d, True) |
77 | bb.data.setVar("DEPENDS", " ".join(newdeps), e.data) | 77 | if not deps: |
78 | provides = bb.data.getVar("PROVIDES", e.data, True) | 78 | return |
79 | deps = bb.utils.explode_deps(deps) | ||
80 | newdeps = [] | ||
81 | for dep in deps: | ||
82 | if dep.endswith("-native") or dep.endswith("-cross"): | ||
83 | newdeps.append(dep) | ||
84 | elif dep.endswith("-gcc-intermediate") or dep.endswith("-gcc-initial") or dep.endswith("-gcc") or dep.endswith("-g++"): | ||
85 | newdeps.append(dep + "-crosssdk") | ||
86 | elif not dep.endswith("-nativesdk"): | ||
87 | newdeps.append(dep.replace("-nativesdk", "") + "-nativesdk") | ||
88 | else: | ||
89 | newdeps.append(dep) | ||
90 | bb.data.setVar(varname, " ".join(newdeps), d) | ||
91 | |||
92 | map_dependencies("DEPENDS", d) | ||
93 | #for pkg in (d.getVar("PACKAGES", True).split() + [""]): | ||
94 | # map_dependencies("RDEPENDS", d, pkg) | ||
95 | # map_dependencies("RRECOMMENDS", d, pkg) | ||
96 | # map_dependencies("RSUGGESTS", d, pkg) | ||
97 | # map_dependencies("RPROVIDES", d, pkg) | ||
98 | # map_dependencies("RREPLACES", d, pkg) | ||
99 | |||
100 | provides = bb.data.getVar("PROVIDES", d, True) | ||
79 | for prov in provides.split(): | 101 | for prov in provides.split(): |
80 | if prov.find(pn) != -1: | 102 | if prov.find(pn) != -1: |
81 | continue | 103 | continue |
82 | if not prov.endswith("-nativesdk"): | 104 | if not prov.endswith("-nativesdk"): |
83 | provides = provides.replace(prov, prov + "-nativesdk") | 105 | provides = provides.replace(prov, prov + "-nativesdk") |
84 | bb.data.setVar("PROVIDES", provides, e.data) | 106 | bb.data.setVar("PROVIDES", provides, d) |
85 | bb.data.setVar("OVERRIDES", bb.data.getVar("OVERRIDES", e.data, False) + ":virtclass-nativesdk", e.data) | ||
86 | } | 107 | } |
87 | 108 | ||
88 | addhandler nativesdk_virtclass_handler | 109 | addhandler nativesdk_virtclass_handler |