diff options
Diffstat (limited to 'meta/classes/multilib_global.bbclass')
-rw-r--r-- | meta/classes/multilib_global.bbclass | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/meta/classes/multilib_global.bbclass b/meta/classes/multilib_global.bbclass index 6095d278dd..c1d6de100c 100644 --- a/meta/classes/multilib_global.bbclass +++ b/meta/classes/multilib_global.bbclass | |||
@@ -155,6 +155,12 @@ def preferred_ml_updates(d): | |||
155 | extramp.append(translate_provide(pref, p)) | 155 | extramp.append(translate_provide(pref, p)) |
156 | d.setVar("BB_MULTI_PROVIDER_ALLOWED", " ".join(mp + extramp)) | 156 | d.setVar("BB_MULTI_PROVIDER_ALLOWED", " ".join(mp + extramp)) |
157 | 157 | ||
158 | virtprovs = d.getVar("BB_RECIPE_VIRTUAL_PROVIDERS").split() | ||
159 | for p in virtprovs.copy(): | ||
160 | for pref in prefixes: | ||
161 | virtprovs.append(translate_provide(pref, p)) | ||
162 | d.setVar("BB_RECIPE_VIRTUAL_PROVIDERS", " ".join(virtprovs)) | ||
163 | |||
158 | abisafe = (d.getVar("SIGGEN_EXCLUDERECIPES_ABISAFE") or "").split() | 164 | abisafe = (d.getVar("SIGGEN_EXCLUDERECIPES_ABISAFE") or "").split() |
159 | extras = [] | 165 | extras = [] |
160 | for p in prefixes: | 166 | for p in prefixes: |
@@ -171,24 +177,26 @@ def preferred_ml_updates(d): | |||
171 | d.appendVar("SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS", " " + " ".join(extras)) | 177 | d.appendVar("SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS", " " + " ".join(extras)) |
172 | 178 | ||
173 | python multilib_virtclass_handler_vendor () { | 179 | python multilib_virtclass_handler_vendor () { |
174 | if isinstance(e, bb.event.ConfigParsed): | 180 | for v in d.getVar("MULTILIB_VARIANTS").split(): |
175 | for v in e.data.getVar("MULTILIB_VARIANTS").split(): | 181 | if d.getVar("TARGET_VENDOR:virtclass-multilib-" + v, False) is None: |
176 | if e.data.getVar("TARGET_VENDOR:virtclass-multilib-" + v, False) is None: | 182 | d.setVar("TARGET_VENDOR:virtclass-multilib-" + v, d.getVar("TARGET_VENDOR", False) + "ml" + v) |
177 | e.data.setVar("TARGET_VENDOR:virtclass-multilib-" + v, e.data.getVar("TARGET_VENDOR", False) + "ml" + v) | 183 | preferred_ml_updates(d) |
178 | preferred_ml_updates(e.data) | ||
179 | } | 184 | } |
180 | addhandler multilib_virtclass_handler_vendor | 185 | addhandler multilib_virtclass_handler_vendor |
181 | multilib_virtclass_handler_vendor[eventmask] = "bb.event.ConfigParsed" | 186 | multilib_virtclass_handler_vendor[eventmask] = "bb.event.ConfigParsed" |
182 | 187 | ||
183 | python multilib_virtclass_handler_global () { | 188 | python multilib_virtclass_handler_global () { |
184 | variant = e.data.getVar("BBEXTENDVARIANT") | 189 | variant = d.getVar("BBEXTENDVARIANT") |
185 | if variant: | 190 | if variant: |
186 | return | 191 | return |
187 | 192 | ||
193 | if bb.data.inherits_class('native', d): | ||
194 | return | ||
195 | |||
188 | non_ml_recipes = d.getVar('NON_MULTILIB_RECIPES').split() | 196 | non_ml_recipes = d.getVar('NON_MULTILIB_RECIPES').split() |
189 | 197 | ||
190 | if bb.data.inherits_class('kernel', e.data) or \ | 198 | if bb.data.inherits_class('kernel', d) or \ |
191 | bb.data.inherits_class('module-base', e.data) or \ | 199 | bb.data.inherits_class('module-base', d) or \ |
192 | d.getVar('BPN') in non_ml_recipes: | 200 | d.getVar('BPN') in non_ml_recipes: |
193 | 201 | ||
194 | # We need to avoid expanding KERNEL_VERSION which we can do by deleting it | 202 | # We need to avoid expanding KERNEL_VERSION which we can do by deleting it |
@@ -197,7 +205,7 @@ python multilib_virtclass_handler_global () { | |||
197 | localdata.delVar("KERNEL_VERSION") | 205 | localdata.delVar("KERNEL_VERSION") |
198 | localdata.delVar("KERNEL_VERSION_PKG_NAME") | 206 | localdata.delVar("KERNEL_VERSION_PKG_NAME") |
199 | 207 | ||
200 | variants = (e.data.getVar("MULTILIB_VARIANTS") or "").split() | 208 | variants = (d.getVar("MULTILIB_VARIANTS") or "").split() |
201 | 209 | ||
202 | import oe.classextend | 210 | import oe.classextend |
203 | clsextends = [] | 211 | clsextends = [] |
@@ -208,22 +216,22 @@ python multilib_virtclass_handler_global () { | |||
208 | origprovs = provs = localdata.getVar("PROVIDES") or "" | 216 | origprovs = provs = localdata.getVar("PROVIDES") or "" |
209 | for clsextend in clsextends: | 217 | for clsextend in clsextends: |
210 | provs = provs + " " + clsextend.map_variable("PROVIDES", setvar=False) | 218 | provs = provs + " " + clsextend.map_variable("PROVIDES", setvar=False) |
211 | e.data.setVar("PROVIDES", provs) | 219 | d.setVar("PROVIDES", provs) |
212 | 220 | ||
213 | # Process RPROVIDES | 221 | # Process RPROVIDES |
214 | origrprovs = rprovs = localdata.getVar("RPROVIDES") or "" | 222 | origrprovs = rprovs = localdata.getVar("RPROVIDES") or "" |
215 | for clsextend in clsextends: | 223 | for clsextend in clsextends: |
216 | rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES", setvar=False) | 224 | rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES", setvar=False) |
217 | if rprovs.strip(): | 225 | if rprovs.strip(): |
218 | e.data.setVar("RPROVIDES", rprovs) | 226 | d.setVar("RPROVIDES", rprovs) |
219 | 227 | ||
220 | # Process RPROVIDES:${PN}... | 228 | # Process RPROVIDES:${PN}... |
221 | for pkg in (e.data.getVar("PACKAGES") or "").split(): | 229 | for pkg in (d.getVar("PACKAGES") or "").split(): |
222 | origrprovs = rprovs = localdata.getVar("RPROVIDES:%s" % pkg) or "" | 230 | origrprovs = rprovs = localdata.getVar("RPROVIDES:%s" % pkg) or "" |
223 | for clsextend in clsextends: | 231 | for clsextend in clsextends: |
224 | rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES:%s" % pkg, setvar=False) | 232 | rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES:%s" % pkg, setvar=False) |
225 | rprovs = rprovs + " " + clsextend.extname + "-" + pkg | 233 | rprovs = rprovs + " " + clsextend.extname + "-" + pkg |
226 | e.data.setVar("RPROVIDES:%s" % pkg, rprovs) | 234 | d.setVar("RPROVIDES:%s" % pkg, rprovs) |
227 | } | 235 | } |
228 | 236 | ||
229 | addhandler multilib_virtclass_handler_global | 237 | addhandler multilib_virtclass_handler_global |