diff options
Diffstat (limited to 'meta/classes/multilib_global.bbclass')
| -rw-r--r-- | meta/classes/multilib_global.bbclass | 53 |
1 files changed, 28 insertions, 25 deletions
diff --git a/meta/classes/multilib_global.bbclass b/meta/classes/multilib_global.bbclass index 6095d278dd..d9372d9ed1 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,33 +205,28 @@ 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 | |||
| 202 | import oe.classextend | ||
| 203 | clsextends = [] | ||
| 204 | for variant in variants: | ||
| 205 | clsextends.append(oe.classextend.ClassExtender(variant, localdata)) | ||
| 206 | 209 | ||
| 207 | # Process PROVIDES | 210 | # Process PROVIDES |
| 208 | origprovs = provs = localdata.getVar("PROVIDES") or "" | 211 | origprovs = provs = localdata.getVar("PROVIDES") or "" |
| 209 | for clsextend in clsextends: | 212 | for variant in variants: |
| 210 | provs = provs + " " + clsextend.map_variable("PROVIDES", setvar=False) | 213 | provs = provs + " " + oe.classextend.suffix_filter_deps(localdata.getVar("PROVIDES") or "", variant, variants) |
| 211 | e.data.setVar("PROVIDES", provs) | 214 | d.setVar("PROVIDES", provs) |
| 212 | 215 | ||
| 213 | # Process RPROVIDES | 216 | # Process RPROVIDES |
| 214 | origrprovs = rprovs = localdata.getVar("RPROVIDES") or "" | 217 | origrprovs = rprovs = localdata.getVar("RPROVIDES") or "" |
| 215 | for clsextend in clsextends: | 218 | for variant in variants: |
| 216 | rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES", setvar=False) | 219 | rprovs = rprovs + " " + oe.classextend.suffix_filter_deps(localdata.getVar("RPROVIDES") or "", variant, variants) |
| 217 | if rprovs.strip(): | 220 | if rprovs.strip(): |
| 218 | e.data.setVar("RPROVIDES", rprovs) | 221 | d.setVar("RPROVIDES", rprovs) |
| 219 | 222 | ||
| 220 | # Process RPROVIDES:${PN}... | 223 | # Process RPROVIDES:${PN}... |
| 221 | for pkg in (e.data.getVar("PACKAGES") or "").split(): | 224 | for pkg in (d.getVar("PACKAGES") or "").split(): |
| 222 | origrprovs = rprovs = localdata.getVar("RPROVIDES:%s" % pkg) or "" | 225 | origrprovs = rprovs = localdata.getVar("RPROVIDES:%s" % pkg) or "" |
| 223 | for clsextend in clsextends: | 226 | for variant in variants: |
| 224 | rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES:%s" % pkg, setvar=False) | 227 | rprovs = rprovs + " " + oe.classextend.suffix_filter_deps(localdata.getVar("RPROVIDES:%s" % pkg) or "", variant, variants) |
| 225 | rprovs = rprovs + " " + clsextend.extname + "-" + pkg | 228 | rprovs = rprovs + " " + variant + "-" + pkg |
| 226 | e.data.setVar("RPROVIDES:%s" % pkg, rprovs) | 229 | d.setVar("RPROVIDES:%s" % pkg, rprovs) |
| 227 | } | 230 | } |
| 228 | 231 | ||
| 229 | addhandler multilib_virtclass_handler_global | 232 | addhandler multilib_virtclass_handler_global |
