summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/parse
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/parse')
-rw-r--r--bitbake/lib/bb/parse/ast.py30
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
73class DataNode(AstNode): 73class 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
121class MethodNode(AstNode): 141class MethodNode(AstNode):
122 def __init__(self, filename, lineno, func_name, body): 142 def __init__(self, filename, lineno, func_name, body):