diff options
Diffstat (limited to 'bitbake/lib/bb/parse/ast.py')
| -rw-r--r-- | bitbake/lib/bb/parse/ast.py | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py index 2a2fe1d519..8296fd0a79 100644 --- a/bitbake/lib/bb/parse/ast.py +++ b/bitbake/lib/bb/parse/ast.py | |||
| @@ -149,8 +149,27 @@ class PythonMethodNode: | |||
| 149 | if not self.root in __parsed_methods__: | 149 | if not self.root in __parsed_methods__: |
| 150 | text = '\n'.join(self.body) | 150 | text = '\n'.join(self.body) |
| 151 | bb.methodpool.insert_method(self.root, text, self.fn) | 151 | bb.methodpool.insert_method(self.root, text, self.fn) |
| 152 | 152 | ||
| 153 | 153 | class MethodFlagsNode: | |
| 154 | def __init__(self, key, m): | ||
| 155 | self.key = key | ||
| 156 | self.m = m | ||
| 157 | |||
| 158 | def eval(self, data): | ||
| 159 | if bb.data.getVar(self.key, data): | ||
| 160 | # clean up old version of this piece of metadata, as its | ||
| 161 | # flags could cause problems | ||
| 162 | bb.data.setVarFlag(self.key, 'python', None, data) | ||
| 163 | bb.data.setVarFlag(self.key, 'fakeroot', None, data) | ||
| 164 | if self.m.group("py") is not None: | ||
| 165 | bb.data.setVarFlag(self.key, "python", "1", data) | ||
| 166 | else: | ||
| 167 | bb.data.delVarFlag(self.key, "python", data) | ||
| 168 | if self.m.group("fr") is not None: | ||
| 169 | bb.data.setVarFlag(self.key, "fakeroot", "1", data) | ||
| 170 | else: | ||
| 171 | bb.data.delVarFlag(self.key, "fakeroot", data) | ||
| 172 | |||
| 154 | def handleInclude(statements, m, fn, lineno, data, force): | 173 | def handleInclude(statements, m, fn, lineno, data, force): |
| 155 | # AST handling | 174 | # AST handling |
| 156 | statements.append(IncludeNode(m.group(1), fn, lineno, force)) | 175 | statements.append(IncludeNode(m.group(1), fn, lineno, force)) |
| @@ -177,19 +196,8 @@ def handlePythonMethod(statements, root, body, fn): | |||
| 177 | statements[-1].eval(None) | 196 | statements[-1].eval(None) |
| 178 | 197 | ||
| 179 | def handleMethodFlags(statements, key, m, d): | 198 | def handleMethodFlags(statements, key, m, d): |
| 180 | if bb.data.getVar(key, d): | 199 | statements.append(MethodFlagsNode(key, m)) |
| 181 | # Clean up old version of this piece of metadata, as its | 200 | statements[-1].eval(d) |
| 182 | # flags could cause problems | ||
| 183 | bb.data.setVarFlag(key, 'python', None, d) | ||
| 184 | bb.data.setVarFlag(key, 'fakeroot', None, d) | ||
| 185 | if m.group("py") is not None: | ||
| 186 | bb.data.setVarFlag(key, "python", "1", d) | ||
| 187 | else: | ||
| 188 | bb.data.delVarFlag(key, "python", d) | ||
| 189 | if m.group("fr") is not None: | ||
| 190 | bb.data.setVarFlag(key, "fakeroot", "1", d) | ||
| 191 | else: | ||
| 192 | bb.data.delVarFlag(key, "fakeroot", d) | ||
| 193 | 201 | ||
| 194 | def handleExportFuncs(statements, m, classes, d): | 202 | def handleExportFuncs(statements, m, classes, d): |
| 195 | fns = m.group(1) | 203 | fns = m.group(1) |
