summaryrefslogtreecommitdiffstats
path: root/lib/bb/parse/ast.py
diff options
context:
space:
mode:
authorChris Larson <chris_larson@mentor.com>2011-01-07 08:51:43 -0700
committerChris Larson <chris_larson@mentor.com>2011-01-07 10:58:11 -0500
commitd93bd42e8a6f66bf7a7a638d98e5e06ccd5a2c33 (patch)
tree914de98748b9040bbf0634788252e119325bc139 /lib/bb/parse/ast.py
parent96ee6840010c1ae1080e6bf7ff0f4eb2d361e84b (diff)
parent315b83d1de954e51d0d077ff00140a7ec41ffbc7 (diff)
downloadbitbake-d93bd42e8a6f66bf7a7a638d98e5e06ccd5a2c33.tar.gz
Merge branch 'poky-sync'
* poky-sync: build: kill unneeded environment setup bits parse: save python functions into the metadata Include exported variables in task process env runqueue: start implementing quieterrors Overhaul environment handling runqueue: resurrect use of file objects for pipein/pipeout runqueue: clean up message log levels runqueue: use correct task ID when checking validity of setscene tasks Add support for 'noexec' tasks runqueue: implement cache checking from metadata runqueue: pass task hash information to tasks runqueue: avoid unnecessary delays Implement task signatures data: Add emit_func and generate_dependencies codeparser: Implement persistent cache data_smart: track variable references codeparser: add module for parsing shell/python runqueue: implement scenequeue fetch: add SRC_URI checksum Signed-off-by: Chris Larson <chris_larson@mentor.com>
Diffstat (limited to 'lib/bb/parse/ast.py')
-rw-r--r--lib/bb/parse/ast.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/lib/bb/parse/ast.py b/lib/bb/parse/ast.py
index 860f98b1b..8fffe1e8f 100644
--- a/lib/bb/parse/ast.py
+++ b/lib/bb/parse/ast.py
@@ -142,8 +142,9 @@ class MethodNode(AstNode):
bb.data.setVar(self.func_name, '\n'.join(self.body), data)
class PythonMethodNode(AstNode):
- def __init__(self, filename, lineno, define, body):
+ def __init__(self, filename, lineno, function, define, body):
AstNode.__init__(self, filename, lineno)
+ self.function = function
self.define = define
self.body = body
@@ -151,9 +152,12 @@ class PythonMethodNode(AstNode):
# Note we will add root to parsedmethods after having parse
# 'this' file. This means we will not parse methods from
# bb classes twice
+ text = '\n'.join(self.body)
if not bb.methodpool.parsed_module(self.define):
- text = '\n'.join(self.body)
bb.methodpool.insert_method(self.define, text, self.filename)
+ bb.data.setVarFlag(self.function, "func", 1, data)
+ bb.data.setVarFlag(self.function, "python", 1, data)
+ bb.data.setVar(self.function, text, data)
class MethodFlagsNode(AstNode):
def __init__(self, filename, lineno, key, m):
@@ -280,8 +284,8 @@ def handleData(statements, filename, lineno, groupd):
def handleMethod(statements, filename, lineno, func_name, body):
statements.append(MethodNode(filename, lineno, func_name, body))
-def handlePythonMethod(statements, filename, lineno, root, body):
- statements.append(PythonMethodNode(filename, lineno, root, body))
+def handlePythonMethod(statements, filename, lineno, funcname, root, body):
+ statements.append(PythonMethodNode(filename, lineno, funcname, root, body))
def handleMethodFlags(statements, filename, lineno, key, m):
statements.append(MethodFlagsNode(filename, lineno, key, m))
@@ -305,7 +309,7 @@ def handleInherit(statements, filename, lineno, m):
classes = m.group(1)
statements.append(InheritNode(filename, lineno, classes.split()))
-def finalize(fn, d):
+def finalize(fn, d, variant = None):
for lazykey in bb.data.getVar("__lazy_assigned", d) or ():
if bb.data.getVar(lazykey, d) is None:
val = bb.data.getVarFlag(lazykey, "defaultval", d)
@@ -328,6 +332,8 @@ def finalize(fn, d):
tasklist = bb.data.getVar('__BBTASKS', d) or []
bb.build.add_tasks(tasklist, d)
+ bb.parse.siggen.finalise(fn, d, variant)
+
bb.event.fire(bb.event.RecipeParsed(fn), d)
def _create_variants(datastores, names, function):
@@ -436,7 +442,7 @@ def multi_finalize(fn, d):
for variant, variant_d in datastores.iteritems():
if variant:
try:
- finalize(fn, variant_d)
+ finalize(fn, variant_d, variant)
except bb.parse.SkipPackage:
bb.data.setVar("__SKIPPED", True, variant_d)