diff options
| author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-05-22 10:30:57 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-07-12 22:50:45 +0100 |
| commit | 933e19697b680637e5af8131cf5fc833943f68f7 (patch) | |
| tree | 380e8c3b71b4fdfd233b947ba45317824ebde9d8 /bitbake/lib/bb/parse/ast.py | |
| parent | 95be16f428ae4cf4254da0b814a327459a983ef5 (diff) | |
| download | poky-933e19697b680637e5af8131cf5fc833943f68f7.tar.gz | |
bitbake: parse/ast/data_smart: Add parsing flag to getVar/setVar
When parsing we find problems if we clear prepends/appends when
setting variables during the initial parsing phases. Later, we actively
want to do this (in what would be post finalisation previously).
To handle this, pass a parsing flag to the operations to control
the correct behaviour for the context.
(Bitbake rev: ae87f5b8bf16191b3201cfb445062938eab992a0)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/parse/ast.py')
| -rw-r--r-- | bitbake/lib/bb/parse/ast.py | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py index 1130b1474c..bd42bd3a7a 100644 --- a/bitbake/lib/bb/parse/ast.py +++ b/bitbake/lib/bb/parse/ast.py | |||
| @@ -85,7 +85,7 @@ class DataNode(AstNode): | |||
| 85 | if 'flag' in self.groupd and self.groupd['flag'] != None: | 85 | if 'flag' in self.groupd and self.groupd['flag'] != None: |
| 86 | return data.getVarFlag(key, self.groupd['flag'], noweakdefault=True) | 86 | return data.getVarFlag(key, self.groupd['flag'], noweakdefault=True) |
| 87 | else: | 87 | else: |
| 88 | return data.getVar(key, False, noweakdefault=True) | 88 | return data.getVar(key, False, noweakdefault=True, parsing=True) |
| 89 | 89 | ||
| 90 | def eval(self, data): | 90 | def eval(self, data): |
| 91 | groupd = self.groupd | 91 | groupd = self.groupd |
| @@ -136,7 +136,7 @@ class DataNode(AstNode): | |||
| 136 | if flag: | 136 | if flag: |
| 137 | data.setVarFlag(key, flag, val, **loginfo) | 137 | data.setVarFlag(key, flag, val, **loginfo) |
| 138 | else: | 138 | else: |
| 139 | data.setVar(key, val, **loginfo) | 139 | data.setVar(key, val, parsing=True, **loginfo) |
| 140 | 140 | ||
| 141 | class MethodNode(AstNode): | 141 | class MethodNode(AstNode): |
| 142 | tr_tbl = string.maketrans('/.+-@%&', '_______') | 142 | tr_tbl = string.maketrans('/.+-@%&', '_______') |
| @@ -155,10 +155,10 @@ class MethodNode(AstNode): | |||
| 155 | anonfuncs = data.getVar('__BBANONFUNCS', False) or [] | 155 | anonfuncs = data.getVar('__BBANONFUNCS', False) or [] |
| 156 | anonfuncs.append(funcname) | 156 | anonfuncs.append(funcname) |
| 157 | data.setVar('__BBANONFUNCS', anonfuncs) | 157 | data.setVar('__BBANONFUNCS', anonfuncs) |
| 158 | data.setVar(funcname, text) | 158 | data.setVar(funcname, text, parsing=True) |
| 159 | else: | 159 | else: |
| 160 | data.setVarFlag(self.func_name, "func", 1) | 160 | data.setVarFlag(self.func_name, "func", 1) |
| 161 | data.setVar(self.func_name, text) | 161 | data.setVar(self.func_name, text, parsing=True) |
| 162 | 162 | ||
| 163 | class PythonMethodNode(AstNode): | 163 | class PythonMethodNode(AstNode): |
| 164 | def __init__(self, filename, lineno, function, modulename, body): | 164 | def __init__(self, filename, lineno, function, modulename, body): |
| @@ -175,7 +175,7 @@ class PythonMethodNode(AstNode): | |||
| 175 | bb.methodpool.insert_method(self.modulename, text, self.filename) | 175 | bb.methodpool.insert_method(self.modulename, text, self.filename) |
| 176 | data.setVarFlag(self.function, "func", 1) | 176 | data.setVarFlag(self.function, "func", 1) |
| 177 | data.setVarFlag(self.function, "python", 1) | 177 | data.setVarFlag(self.function, "python", 1) |
| 178 | data.setVar(self.function, text) | 178 | data.setVar(self.function, text, parsing=True) |
| 179 | 179 | ||
| 180 | class MethodFlagsNode(AstNode): | 180 | class MethodFlagsNode(AstNode): |
| 181 | def __init__(self, filename, lineno, key, m): | 181 | def __init__(self, filename, lineno, key, m): |
| @@ -224,11 +224,11 @@ class ExportFuncsNode(AstNode): | |||
| 224 | data.setVarFlag(calledfunc, flag, data.getVarFlag(func, flag)) | 224 | data.setVarFlag(calledfunc, flag, data.getVarFlag(func, flag)) |
| 225 | 225 | ||
| 226 | if data.getVarFlag(calledfunc, "python"): | 226 | if data.getVarFlag(calledfunc, "python"): |
| 227 | data.setVar(func, " bb.build.exec_func('" + calledfunc + "', d)\n") | 227 | data.setVar(func, " bb.build.exec_func('" + calledfunc + "', d)\n", parsing=True) |
| 228 | else: | 228 | else: |
| 229 | if "-" in self.classname: | 229 | if "-" in self.classname: |
| 230 | bb.fatal("The classname %s contains a dash character and is calling an sh function %s using EXPORT_FUNCTIONS. Since a dash is illegal in sh function names, this cannot work, please rename the class or don't use EXPORT_FUNCTIONS." % (self.classname, calledfunc)) | 230 | bb.fatal("The classname %s contains a dash character and is calling an sh function %s using EXPORT_FUNCTIONS. Since a dash is illegal in sh function names, this cannot work, please rename the class or don't use EXPORT_FUNCTIONS." % (self.classname, calledfunc)) |
| 231 | data.setVar(func, " " + calledfunc + "\n") | 231 | data.setVar(func, " " + calledfunc + "\n", parsing=True) |
| 232 | data.setVarFlag(func, 'export_func', '1') | 232 | data.setVarFlag(func, 'export_func', '1') |
| 233 | 233 | ||
| 234 | class AddTaskNode(AstNode): | 234 | class AddTaskNode(AstNode): |
