diff options
Diffstat (limited to 'bitbake/lib/bb/parse')
-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): |