diff options
Diffstat (limited to 'bitbake/lib/bb/parse/ast.py')
| -rw-r--r-- | bitbake/lib/bb/parse/ast.py | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py index 79e9f7e170..b2657f8044 100644 --- a/bitbake/lib/bb/parse/ast.py +++ b/bitbake/lib/bb/parse/ast.py | |||
| @@ -68,7 +68,7 @@ class ExportNode(AstNode): | |||
| 68 | self.var = var | 68 | self.var = var |
| 69 | 69 | ||
| 70 | def eval(self, data): | 70 | def eval(self, data): |
| 71 | data.setVarFlag(self.var, "export", 1) | 71 | data.setVarFlag(self.var, "export", 1, op = 'exported') |
| 72 | 72 | ||
| 73 | class DataNode(AstNode): | 73 | class DataNode(AstNode): |
| 74 | """ | 74 | """ |
| @@ -90,33 +90,53 @@ class DataNode(AstNode): | |||
| 90 | def eval(self, data): | 90 | def eval(self, data): |
| 91 | groupd = self.groupd | 91 | groupd = self.groupd |
| 92 | key = groupd["var"] | 92 | key = groupd["var"] |
| 93 | loginfo = { | ||
| 94 | 'variable': key, | ||
| 95 | 'file': self.filename, | ||
| 96 | 'line': self.lineno, | ||
| 97 | } | ||
| 93 | if "exp" in groupd and groupd["exp"] != None: | 98 | if "exp" in groupd and groupd["exp"] != None: |
| 94 | data.setVarFlag(key, "export", 1) | 99 | data.setVarFlag(key, "export", 1, op = 'exported', **loginfo) |
| 100 | |||
| 101 | op = "set" | ||
| 95 | if "ques" in groupd and groupd["ques"] != None: | 102 | if "ques" in groupd and groupd["ques"] != None: |
| 96 | val = self.getFunc(key, data) | 103 | val = self.getFunc(key, data) |
| 104 | op = "set?" | ||
| 97 | if val == None: | 105 | if val == None: |
| 98 | val = groupd["value"] | 106 | val = groupd["value"] |
| 99 | elif "colon" in groupd and groupd["colon"] != None: | 107 | elif "colon" in groupd and groupd["colon"] != None: |
| 100 | e = data.createCopy() | 108 | e = data.createCopy() |
| 101 | bb.data.update_data(e) | 109 | bb.data.update_data(e) |
| 110 | op = "immediate" | ||
| 102 | val = e.expand(groupd["value"], key + "[:=]") | 111 | val = e.expand(groupd["value"], key + "[:=]") |
| 103 | elif "append" in groupd and groupd["append"] != None: | 112 | elif "append" in groupd and groupd["append"] != None: |
| 113 | op = "append" | ||
| 104 | val = "%s %s" % ((self.getFunc(key, data) or ""), groupd["value"]) | 114 | val = "%s %s" % ((self.getFunc(key, data) or ""), groupd["value"]) |
| 105 | elif "prepend" in groupd and groupd["prepend"] != None: | 115 | elif "prepend" in groupd and groupd["prepend"] != None: |
| 116 | op = "prepend" | ||
| 106 | val = "%s %s" % (groupd["value"], (self.getFunc(key, data) or "")) | 117 | val = "%s %s" % (groupd["value"], (self.getFunc(key, data) or "")) |
| 107 | elif "postdot" in groupd and groupd["postdot"] != None: | 118 | elif "postdot" in groupd and groupd["postdot"] != None: |
| 119 | op = "postdot" | ||
| 108 | val = "%s%s" % ((self.getFunc(key, data) or ""), groupd["value"]) | 120 | val = "%s%s" % ((self.getFunc(key, data) or ""), groupd["value"]) |
| 109 | elif "predot" in groupd and groupd["predot"] != None: | 121 | elif "predot" in groupd and groupd["predot"] != None: |
| 122 | op = "predot" | ||
| 110 | val = "%s%s" % (groupd["value"], (self.getFunc(key, data) or "")) | 123 | val = "%s%s" % (groupd["value"], (self.getFunc(key, data) or "")) |
| 111 | else: | 124 | else: |
| 112 | val = groupd["value"] | 125 | val = groupd["value"] |
| 113 | 126 | ||
| 127 | flag = None | ||
| 114 | if 'flag' in groupd and groupd['flag'] != None: | 128 | if 'flag' in groupd and groupd['flag'] != None: |
| 115 | data.setVarFlag(key, groupd['flag'], val) | 129 | flag = groupd['flag'] |
| 116 | elif groupd["lazyques"]: | 130 | elif groupd["lazyques"]: |
| 117 | data.setVarFlag(key, "defaultval", val) | 131 | flag = "defaultval" |
| 132 | |||
| 133 | loginfo['op'] = op | ||
| 134 | loginfo['detail'] = groupd["value"] | ||
| 135 | |||
| 136 | if flag: | ||
| 137 | data.setVarFlag(key, flag, val, **loginfo) | ||
| 118 | else: | 138 | else: |
| 119 | data.setVar(key, val) | 139 | data.setVar(key, val, **loginfo) |
| 120 | 140 | ||
| 121 | class MethodNode(AstNode): | 141 | class MethodNode(AstNode): |
| 122 | def __init__(self, filename, lineno, func_name, body): | 142 | def __init__(self, filename, lineno, func_name, body): |
