diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-12-21 13:53:11 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-09-02 05:52:05 -0700 |
commit | 58a8a38aa294edb74dde70d70a7e5faf49444b78 (patch) | |
tree | c86d8133fb889e751733b58a31de8bfad168d6a7 /meta | |
parent | 9ba1e33e2d14362971d6441ee6142bcb0857df1a (diff) | |
download | poky-58a8a38aa294edb74dde70d70a7e5faf49444b78.tar.gz |
nativesdk: Convert to use classextend.py
This patch converts the nativesdk class itself from operating as a suffix
to a prefix (see the proceeding patch for the related changes outside this
class).
The big benefit here is that we can reuse the generic class extension code.
(From OE-Core rev: f01f0b8aed25af889f48fe1afff96feb3d9ed120)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/nativesdk.bbclass | 49 | ||||
-rw-r--r-- | meta/lib/oe/classextend.py | 4 |
2 files changed, 17 insertions, 36 deletions
diff --git a/meta/classes/nativesdk.bbclass b/meta/classes/nativesdk.bbclass index 7deaafc670..8c0cd5bea1 100644 --- a/meta/classes/nativesdk.bbclass +++ b/meta/classes/nativesdk.bbclass | |||
@@ -59,51 +59,28 @@ python nativesdk_virtclass_handler () { | |||
59 | return | 59 | return |
60 | 60 | ||
61 | pn = e.data.getVar("PN", True) | 61 | pn = e.data.getVar("PN", True) |
62 | if not pn.endswith("-nativesdk"): | 62 | if not pn.endswith("-nativesdk") or pn.startswith("nativesdk-"): |
63 | return | 63 | return |
64 | 64 | ||
65 | e.data.setVar("MLPREFIX", "nativesdk-") | ||
66 | e.data.setVar("PN", "nativesdk-" + e.data.getVar("PN", True).replace("-nativesdk", "").replace("nativesdk-", "")) | ||
65 | e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + ":virtclass-nativesdk") | 67 | e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + ":virtclass-nativesdk") |
66 | } | 68 | } |
67 | 69 | ||
68 | python () { | 70 | python () { |
69 | pn = d.getVar("PN", True) | 71 | pn = d.getVar("PN", True) |
70 | if not pn.endswith("-nativesdk"): | 72 | if not pn.startswith("nativesdk-"): |
71 | return | 73 | return |
72 | 74 | ||
73 | def map_dependencies(varname, d, suffix = ""): | 75 | import oe.classextend |
74 | if suffix: | 76 | |
75 | varname = varname + "_" + suffix | 77 | clsextend = oe.classextend.NativesdkClassExtender("nativesdk", d) |
76 | deps = d.getVar(varname, True) | 78 | clsextend.rename_packages() |
77 | if not deps: | 79 | clsextend.rename_package_variables((d.getVar("PACKAGEVARS", True) or "").split()) |
78 | return | 80 | |
79 | deps = bb.utils.explode_deps(deps) | 81 | clsextend.map_depends_variable("DEPENDS") |
80 | newdeps = [] | 82 | clsextend.map_packagevars() |
81 | for dep in deps: | 83 | clsextend.map_variable("PROVIDES") |
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 | d.setVar(varname, " ".join(newdeps)) | ||
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 = d.getVar("PROVIDES", True) | ||
101 | for prov in provides.split(): | ||
102 | if prov.find(pn) != -1: | ||
103 | continue | ||
104 | if not prov.endswith("-nativesdk"): | ||
105 | provides = provides.replace(prov, prov + "-nativesdk") | ||
106 | d.setVar("PROVIDES", provides) | ||
107 | } | 84 | } |
108 | 85 | ||
109 | addhandler nativesdk_virtclass_handler | 86 | addhandler nativesdk_virtclass_handler |
diff --git a/meta/lib/oe/classextend.py b/meta/lib/oe/classextend.py index fb0d967372..86b1e8a554 100644 --- a/meta/lib/oe/classextend.py +++ b/meta/lib/oe/classextend.py | |||
@@ -7,6 +7,10 @@ class ClassExtender(object): | |||
7 | def extend_name(self, name): | 7 | def extend_name(self, name): |
8 | if name.startswith("kernel-module"): | 8 | if name.startswith("kernel-module"): |
9 | return name | 9 | return name |
10 | if name.startswith("rtld"): | ||
11 | return name | ||
12 | if name.endswith("-" + self.extname): | ||
13 | name = name.replace("-" + self.extname, "") | ||
10 | if name.startswith("virtual/"): | 14 | if name.startswith("virtual/"): |
11 | subs = name.split("/", 1)[1] | 15 | subs = name.split("/", 1)[1] |
12 | if not subs.startswith(self.extname): | 16 | if not subs.startswith(self.extname): |