summaryrefslogtreecommitdiffstats
path: root/meta/classes-recipe
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes-recipe')
-rw-r--r--meta/classes-recipe/native.bbclass39
-rw-r--r--meta/classes-recipe/nativesdk.bbclass11
-rw-r--r--meta/classes-recipe/toolchain-scripts.bbclass4
3 files changed, 17 insertions, 37 deletions
diff --git a/meta/classes-recipe/native.bbclass b/meta/classes-recipe/native.bbclass
index 625975a694..7d1fe343fa 100644
--- a/meta/classes-recipe/native.bbclass
+++ b/meta/classes-recipe/native.bbclass
@@ -138,38 +138,18 @@ python native_virtclass_handler () {
138 if "native" not in classextend: 138 if "native" not in classextend:
139 return 139 return
140 140
141 def map_dependencies(varname, d, suffix = "", selfref=True, regex=False): 141 def map_dependencies(varname, d, suffix, selfref=True, regex=False):
142 if suffix: 142 varname = varname + ":" + suffix
143 varname = varname + ":" + suffix
144 deps = d.getVar(varname)
145 if not deps:
146 return
147 deps = bb.utils.explode_deps(deps)
148 newdeps = []
149 for dep in deps:
150 if regex and dep.startswith("^") and dep.endswith("$"):
151 newdeps.append(dep[:-1].replace(pn, bpn) + "-native$")
152 elif dep == pn:
153 if not selfref:
154 continue
155 newdeps.append(dep)
156 elif "-cross-" in dep:
157 newdeps.append(dep.replace("-cross", "-native"))
158 elif not dep.endswith("-native"):
159 # Replace ${PN} with ${BPN} in the dependency to make sure
160 # dependencies on, e.g., ${PN}-foo become ${BPN}-foo-native
161 # rather than ${BPN}-native-foo-native.
162 newdeps.append(dep.replace(pn, bpn) + "-native")
163 else:
164 newdeps.append(dep)
165 output_varname = varname
166 # Handle ${PN}-xxx -> ${BPN}-xxx-native 143 # Handle ${PN}-xxx -> ${BPN}-xxx-native
167 if suffix != "${PN}" and "${PN}" in suffix: 144 if suffix != "${PN}" and "${PN}" in suffix:
168 output_varname = varname.replace("${PN}", "${BPN}") + "-native" 145 output_varname = varname.replace("${PN}", "${BPN}") + "-native"
169 d.renameVar(varname, output_varname) 146 d.renameVar(varname, output_varname)
170 d.setVar(output_varname, " ".join(newdeps))
171 147
172 map_dependencies("DEPENDS", e.data, selfref=False) 148 d.setVarFilter("DEPENDS", "native_filter(val, '" + pn + "', '" + bpn + "', selfref=False)")
149
150 for varname in ["RDEPENDS", "RRECOMMENDS", "RSUGGESTS", "RPROVIDES", "RREPLACES"]:
151 d.setVarFilter(varname, "native_filter(val, '" + pn + "', '" + bpn + "')")
152
173 # We need to handle things like ${@bb.utils.contains('PTEST_ENABLED', '1', '${PN}-ptest', '', d)} 153 # We need to handle things like ${@bb.utils.contains('PTEST_ENABLED', '1', '${PN}-ptest', '', d)}
174 # and not pass ${PN}-test since in the native case it would be ignored. This does mean we ignore 154 # and not pass ${PN}-test since in the native case it would be ignored. This does mean we ignore
175 # anonymous python derived PACKAGES entries. 155 # anonymous python derived PACKAGES entries.
@@ -181,8 +161,9 @@ python native_virtclass_handler () {
181 map_dependencies("RSUGGESTS", e.data, pkg) 161 map_dependencies("RSUGGESTS", e.data, pkg)
182 map_dependencies("RPROVIDES", e.data, pkg) 162 map_dependencies("RPROVIDES", e.data, pkg)
183 map_dependencies("RREPLACES", e.data, pkg) 163 map_dependencies("RREPLACES", e.data, pkg)
184 map_dependencies("PACKAGES", e.data) 164
185 map_dependencies("PACKAGES_DYNAMIC", e.data, regex=True) 165 d.setVarFilter("PACKAGES", "native_filter(val, '" + pn + "', '" + bpn + "')")
166 d.setVarFilter("PACKAGES_DYNAMIC", "native_filter(val, '" + pn + "', '" + bpn + "', regex=True)")
186 167
187 provides = e.data.getVar("PROVIDES") 168 provides = e.data.getVar("PROVIDES")
188 nprovides = [] 169 nprovides = []
diff --git a/meta/classes-recipe/nativesdk.bbclass b/meta/classes-recipe/nativesdk.bbclass
index 7ecb4c12c1..9838d5a54b 100644
--- a/meta/classes-recipe/nativesdk.bbclass
+++ b/meta/classes-recipe/nativesdk.bbclass
@@ -99,15 +99,14 @@ python () {
99 99
100 import oe.classextend 100 import oe.classextend
101 101
102 clsextend = oe.classextend.NativesdkClassExtender("nativesdk", d) 102 clsextend = oe.classextend.ClassExtender("nativesdk", [], d)
103 clsextend.rename_packages()
104 clsextend.rename_package_variables((d.getVar("PACKAGEVARS") or "").split()) 103 clsextend.rename_package_variables((d.getVar("PACKAGEVARS") or "").split())
105 104
106 clsextend.map_depends_variable("DEPENDS") 105 clsextend.set_filter("DEPENDS", deps=True)
107 clsextend.map_depends_variable("PACKAGE_WRITE_DEPS") 106 clsextend.set_filter("PACKAGE_WRITE_DEPS", deps=False)
108 clsextend.map_packagevars() 107 clsextend.map_packagevars()
109 clsextend.map_variable("PROVIDES") 108 clsextend.set_filter("PROVIDES", deps=False)
110 clsextend.map_regexp_variable("PACKAGES_DYNAMIC") 109
111 d.setVar("LIBCEXTENSION", "") 110 d.setVar("LIBCEXTENSION", "")
112 d.setVar("ABIEXTENSION", "") 111 d.setVar("ABIEXTENSION", "")
113} 112}
diff --git a/meta/classes-recipe/toolchain-scripts.bbclass b/meta/classes-recipe/toolchain-scripts.bbclass
index 5874a48af8..5d28df845b 100644
--- a/meta/classes-recipe/toolchain-scripts.bbclass
+++ b/meta/classes-recipe/toolchain-scripts.bbclass
@@ -238,11 +238,11 @@ toolchain_create_sdk_siteconfig () {
238python __anonymous () { 238python __anonymous () {
239 import oe.classextend 239 import oe.classextend
240 deps = "" 240 deps = ""
241 prefixes = (d.getVar("MULTILIB_VARIANTS") or "").split()
241 for dep in (d.getVar('TOOLCHAIN_NEED_CONFIGSITE_CACHE') or "").split(): 242 for dep in (d.getVar('TOOLCHAIN_NEED_CONFIGSITE_CACHE') or "").split():
242 deps += " %s:do_populate_sysroot" % dep 243 deps += " %s:do_populate_sysroot" % dep
243 for variant in (d.getVar('MULTILIB_VARIANTS') or "").split(): 244 for variant in (d.getVar('MULTILIB_VARIANTS') or "").split():
244 clsextend = oe.classextend.ClassExtender(variant, d) 245 newdep = oe.classextend.add_suffix(dep, variant, prefixes)
245 newdep = clsextend.extend_name(dep)
246 deps += " %s:do_populate_sysroot" % newdep 246 deps += " %s:do_populate_sysroot" % newdep
247 d.appendVarFlag('do_configure', 'depends', deps) 247 d.appendVarFlag('do_configure', 'depends', deps)
248} 248}