diff options
author | Christopher Larson <chris_larson@mentor.com> | 2016-04-30 12:52:45 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-05-18 23:21:07 +0100 |
commit | bdeb3dcd7c92e62a7c079e7b27048c4114f24a3a (patch) | |
tree | 8108fc728d72509ff050e79444d7ac0a649db62c /lib/bb/codeparser.py | |
parent | 72900522778b6ff08b135bf8bb97dff3f1a20bd9 (diff) | |
download | bitbake-bdeb3dcd7c92e62a7c079e7b27048c4114f24a3a.tar.gz |
bb.codeparser: track variable flag references
Previously we only tracked the flags (minus excluded) of variables we depend
on, but not the flags we use explicitly.
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/codeparser.py')
-rw-r--r-- | lib/bb/codeparser.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/bb/codeparser.py b/lib/bb/codeparser.py index 3ee4d5622..2980510d4 100644 --- a/lib/bb/codeparser.py +++ b/lib/bb/codeparser.py @@ -191,6 +191,7 @@ class BufferedLogger(Logger): class PythonParser(): getvars = (".getVar", ".appendVar", ".prependVar") + getvarflags = (".getVarFlag", ".appendVarFlag", ".prependVarFlag") containsfuncs = ("bb.utils.contains", "base_contains", "bb.utils.contains_any") execfuncs = ("bb.build.exec_func", "bb.build.exec_task") @@ -210,15 +211,20 @@ class PythonParser(): def visit_Call(self, node): name = self.called_node_name(node.func) - if name and name.endswith(self.getvars) or name in self.containsfuncs: + if name and (name.endswith(self.getvars) or name.endswith(self.getvarflags) or name in self.containsfuncs): if isinstance(node.args[0], ast.Str): varname = node.args[0].s if name in self.containsfuncs and isinstance(node.args[1], ast.Str): if varname not in self.contains: self.contains[varname] = set() self.contains[varname].add(node.args[1].s) - else: - self.references.add(node.args[0].s) + elif name.endswith(self.getvarflags): + if isinstance(node.args[1], ast.Str): + self.references.add('%s[%s]' % (varname, node.args[1].s)) + else: + self.warn(node.func, node.args[1]) + else: + self.references.add(varname) else: self.warn(node.func, node.args[0]) elif name and name.endswith(".expand"): |