summaryrefslogtreecommitdiffstats
path: root/meta/classes/multilib_global.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/multilib_global.bbclass')
-rw-r--r--meta/classes/multilib_global.bbclass28
1 files changed, 23 insertions, 5 deletions
diff --git a/meta/classes/multilib_global.bbclass b/meta/classes/multilib_global.bbclass
index 612cfb6919..67dc72b76c 100644
--- a/meta/classes/multilib_global.bbclass
+++ b/meta/classes/multilib_global.bbclass
@@ -93,20 +93,38 @@ def preferred_ml_updates(d):
93 if prov != provexp and d.getVar(prov, False): 93 if prov != provexp and d.getVar(prov, False):
94 d.renameVar(prov, provexp) 94 d.renameVar(prov, provexp)
95 95
96 def translate_provide(prefix, prov):
97 if not prov.startswith("virtual/"):
98 return prefix + "-" + prov
99 if prov == "virtual/kernel":
100 return prov
101 prov = prov.replace("virtual/", "")
102 return "virtual/" + prefix + "-" + prov
96 103
97 mp = (d.getVar("MULTI_PROVIDER_WHITELIST", True) or "").split() 104 mp = (d.getVar("MULTI_PROVIDER_WHITELIST", True) or "").split()
98 extramp = [] 105 extramp = []
99 for p in mp: 106 for p in mp:
100 if p.endswith("-native") or "-crosssdk-" in p or p.startswith(("nativesdk-", "virtual/nativesdk-")) or 'cross-canadian' in p: 107 if p.endswith("-native") or "-crosssdk-" in p or p.startswith(("nativesdk-", "virtual/nativesdk-")) or 'cross-canadian' in p:
101 continue 108 continue
102 virt = ""
103 if p.startswith("virtual/"):
104 p = p.replace("virtual/", "")
105 virt = "virtual/"
106 for pref in prefixes: 109 for pref in prefixes:
107 extramp.append(virt + pref + "-" + p) 110 extramp.append(translate_provide(pref, p))
108 d.setVar("MULTI_PROVIDER_WHITELIST", " ".join(mp + extramp)) 111 d.setVar("MULTI_PROVIDER_WHITELIST", " ".join(mp + extramp))
109 112
113 abisafe = (d.getVar("SIGGEN_EXCLUDERECIPES_ABISAFE", True) or "").split()
114 extras = []
115 for p in prefixes:
116 for a in abisafe:
117 extras.append(p + "-" + a)
118 d.appendVar("SIGGEN_EXCLUDERECIPES_ABISAFE", " " + " ".join(extras))
119
120 siggen_exclude = (d.getVar("SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS", True) or "").split()
121 extras = []
122 for p in prefixes:
123 for a in siggen_exclude:
124 a1, a2 = a.split("->")
125 extras.append(translate_provide(p, a1) + "->" + translate_provide(p, a2))
126 d.appendVar("SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS", " " + " ".join(extras))
127
110python multilib_virtclass_handler_vendor () { 128python multilib_virtclass_handler_vendor () {
111 if isinstance(e, bb.event.ConfigParsed): 129 if isinstance(e, bb.event.ConfigParsed):
112 for v in e.data.getVar("MULTILIB_VARIANTS", True).split(): 130 for v in e.data.getVar("MULTILIB_VARIANTS", True).split():