summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-12-21 13:53:11 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-09-02 05:52:05 -0700
commit58a8a38aa294edb74dde70d70a7e5faf49444b78 (patch)
treec86d8133fb889e751733b58a31de8bfad168d6a7 /meta
parent9ba1e33e2d14362971d6441ee6142bcb0857df1a (diff)
downloadpoky-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.bbclass49
-rw-r--r--meta/lib/oe/classextend.py4
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
68python () { 70python () {
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
109addhandler nativesdk_virtclass_handler 86addhandler 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):