From: Jaeyoon Jung <[email protected]> It extends package variables in case missing for a dynamic package added during do_split_packages. It's needed for a multilib build where some per-package variables should be treated as multilib variants.
Signed-off-by: Jaeyoon Jung <[email protected]> --- meta/classes-global/package.bbclass | 11 +++++++++++ meta/lib/oe/classextend.py | 5 +++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/meta/classes-global/package.bbclass b/meta/classes-global/package.bbclass index bd32a6ede5..1d779f714b 100644 --- a/meta/classes-global/package.bbclass +++ b/meta/classes-global/package.bbclass @@ -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" diff --git a/meta/lib/oe/classextend.py b/meta/lib/oe/classextend.py index ddca10dee5..8b9602e316 100644 --- a/meta/lib/oe/classextend.py +++ b/meta/lib/oe/classextend.py @@ -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])) -- 2.47.2
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#231024): https://lists.openembedded.org/g/openembedded-core/message/231024 Mute This Topic: https://lists.openembedded.org/mt/117772536/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
