summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/data.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2022-11-24 22:10:21 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-02-17 18:02:04 +0000
commitd976eb3d5257174900eebedc9495052bb3936ce7 (patch)
treeea536cddab8c0d692e1e9f8d0d1191d986eaaee6 /bitbake/lib/bb/data.py
parent6d5c1129ae464e15e3ba17df7606291bcb94067d (diff)
downloadpoky-d976eb3d5257174900eebedc9495052bb3936ce7.tar.gz
bitbake: data: Evaluate the value of export/unexport/network flags
Currently the export/unexport/network flags are acted on only by presence or lack of in the data store. This is deliberate due to performance reasons since a given recipe shell task might export ~80-90 variables and this means expanding flags for every one of them. This does catch users unaware since values which expand to nothing don't work e.g. ${@""} and setting values to "0" wouldn't work either. The downside to this patch is slow down in parsing speed of around 4%. The network flag is easier to change and doesn't affect performance, it was made to operate the same as export/unexport for consitency reasons. (Bitbake rev: 3d96c07f9fd4ba1a84826811d14bb4e98ad58846) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/data.py')
-rw-r--r--bitbake/lib/bb/data.py10
1 files changed, 5 insertions, 5 deletions
diff --git a/bitbake/lib/bb/data.py b/bitbake/lib/bb/data.py
index f3ae062022..3ee8f5e7db 100644
--- a/bitbake/lib/bb/data.py
+++ b/bitbake/lib/bb/data.py
@@ -114,8 +114,8 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False):
114 if d.getVarFlag(var, 'python', False) and func: 114 if d.getVarFlag(var, 'python', False) and func:
115 return False 115 return False
116 116
117 export = d.getVarFlag(var, "export", False) 117 export = bb.utils.to_boolean(d.getVarFlag(var, "export"))
118 unexport = d.getVarFlag(var, "unexport", False) 118 unexport = bb.utils.to_boolean(d.getVarFlag(var, "unexport"))
119 if not all and not export and not unexport and not func: 119 if not all and not export and not unexport and not func:
120 return False 120 return False
121 121
@@ -188,8 +188,8 @@ def emit_env(o=sys.__stdout__, d = init(), all=False):
188 188
189def exported_keys(d): 189def exported_keys(d):
190 return (key for key in d.keys() if not key.startswith('__') and 190 return (key for key in d.keys() if not key.startswith('__') and
191 d.getVarFlag(key, 'export', False) and 191 bb.utils.to_boolean(d.getVarFlag(key, 'export')) and
192 not d.getVarFlag(key, 'unexport', False)) 192 not bb.utils.to_boolean(d.getVarFlag(key, 'unexport')))
193 193
194def exported_vars(d): 194def exported_vars(d):
195 k = list(exported_keys(d)) 195 k = list(exported_keys(d))
@@ -375,7 +375,7 @@ def generate_dependencies(d, ignored_vars):
375 375
376 mod_funcs = set(bb.codeparser.modulecode_deps.keys()) 376 mod_funcs = set(bb.codeparser.modulecode_deps.keys())
377 keys = set(key for key in d if not key.startswith("__")) | mod_funcs 377 keys = set(key for key in d if not key.startswith("__")) | mod_funcs
378 shelldeps = set(key for key in d.getVar("__exportlist", False) if d.getVarFlag(key, "export", False) and not d.getVarFlag(key, "unexport", False)) 378 shelldeps = set(key for key in d.getVar("__exportlist", False) if bb.utils.to_boolean(d.getVarFlag(key, "export")) and not bb.utils.to_boolean(d.getVarFlag(key, "unexport")))
379 varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS') 379 varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS')
380 380
381 codeparserd = d.createCopy() 381 codeparserd = d.createCopy()