@@ -169,6 +169,7 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst
for o in sorted(objs):
import re, stat
+ import oe.package
if match_path:
m = re.match(file_regex, o)
else:
@@ -225,6 +226,16 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst
hook(f, pkg, file_regex, output_pattern, m.group(1))
d.setVar('PACKAGES', ' '.join(packages))
+
+ variant = d.getVar("BBEXTENDVARIANT")
+ prefixes = (d.getVar("MULTILIB_VARIANTS") or "").split()
+ if variant and prefixes:
+ import oe.classextend
+
+ # Extend package variables for the given variant if unset
+ clsextend = oe.classextend.ClassExtender(variant, prefixes, d)
+ clsextend.rename_package_variables((d.getVar("PACKAGEVARS") or "").split(), overwrite=False)
+
return list(split_packages)
PACKAGE_DEPENDS += "file-native"
@@ -128,7 +128,7 @@ class ClassExtender(object):
self.set_filter("RCONFLICTS", deps=True)
self.set_filter("PKG", deps=True)
- def rename_package_variables(self, variables):
+ def rename_package_variables(self, variables, overwrite=True):
pkgs_mapping = get_package_mappings(self.d.getVar('PACKAGES'), self.extname)
self.d.setVarFilter('PACKAGES', "package_suffix_filter(val, '" + self.extname + "')")
self.d.setVarFilter('PACKAGES_DYNAMIC', "suffix_filter_regex(val, '" + self.extname + "', " + str(self.prefixes) + ")")
@@ -137,4 +137,5 @@ class ClassExtender(object):
if pkg_mapping[0].startswith("${") and pkg_mapping[0].endswith("}"):
continue
for subs in variables:
- self.d.renameVar("%s:%s" % (subs, pkg_mapping[0]), "%s:%s" % (subs, pkg_mapping[1]))
+ if overwrite or not self.d.getVar("%s:%s" % (subs, pkg_mapping[1])):
+ self.d.renameVar("%s:%s" % (subs, pkg_mapping[0]), "%s:%s" % (subs, pkg_mapping[1]))