aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bb/parse/ast.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2021-07-18 12:59:15 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-07-30 14:35:36 +0100
commitf8d1bc200460fc1cb5cbf7a7d1986fd86424b22d (patch)
tree55f87d94bf84d98d88538a9c16322fd09122cf32 /lib/bb/parse/ast.py
parent731fb52eb03338c0bdb2a2256c22c64c22bcbace (diff)
downloadbitbake-f8d1bc200460fc1cb5cbf7a7d1986fd86424b22d.tar.gz
bitbake-f8d1bc200460fc1cb5cbf7a7d1986fd86424b22d.tar.bz2
bitbake-f8d1bc200460fc1cb5cbf7a7d1986fd86424b22d.zip
data_smart/parse: Allow ':' characters in variable/function names
It is becomming increasingly clear we need to find a way to show what is/is not an override in our syntax. We need to do this in a way which is clear to users, readable and in a way we can transition to. The most effective way I've found to this is to use the ":" charater to directly replace "_" where an override is being specified. This includes "append", "prepend" and "remove" which are effectively special override directives. This patch simply adds the character to the parser so bitbake accepts the value but maps it back to "_" internally so there is no behaviour change. This change is simple enough it could potentially be backported to older version of bitbake meaning layers using the new syntax/markup could work with older releases. Even if other no other changes are accepted at this time and we don't backport, it does set us on a path where at some point in future we could require a more explict syntax. I've tested this patch by converting oe-core/meta-yocto to the new syntax for overrides (9000+ changes) and then seeing that builds continue to work with this patch. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/parse/ast.py')
-rw-r--r--lib/bb/parse/ast.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/bb/parse/ast.py b/lib/bb/parse/ast.py
index 50a88f7d..db2bdc35 100644
--- a/lib/bb/parse/ast.py
+++ b/lib/bb/parse/ast.py
@@ -97,6 +97,7 @@ class DataNode(AstNode):
def eval(self, data):
groupd = self.groupd
key = groupd["var"]
+ key = key.replace(":", "_")
loginfo = {
'variable': key,
'file': self.filename,
@@ -207,6 +208,7 @@ class ExportFuncsNode(AstNode):
def eval(self, data):
for func in self.n:
+ func = func.replace(":", "_")
calledfunc = self.classname + "_" + func
if data.getVar(func, False) and not data.getVarFlag(func, 'export_func', False):