]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
build: Add support for pre and postfuncs for tasks
authorRichard Purdie <rpurdie@linux.intel.com>
Wed, 4 Aug 2010 10:30:39 +0000 (11:30 +0100)
committerChris Larson <chris_larson@mentor.com>
Sat, 18 Dec 2010 01:13:33 +0000 (18:13 -0700)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Signed-off-by: Chris Larson <chris_larson@mentor.com>
lib/bb/build.py
lib/bb/data_smart.py

index e4153269d84949db91298d20ba2f90b158c4ff24..e9189530245f0f0280d426ff25b546158bc346c9 100644 (file)
@@ -278,10 +278,17 @@ def exec_task(fn, task, d):
         except OSError:
            pass
 
+    prefuncs = localdata.getVarFlag(task, 'prefuncs', expand=True)
+    postfuncs = localdata.getVarFlag(task, 'postfuncs', expand=True)
+
     logfile = open(logfn, 'w')
     event.fire(TaskStarted(task, localdata), localdata)
     try:
+        for func in (prefuncs or '').split():
+            exec_func(func, localdata, logfile=logfile)
         exec_func(task, localdata, logfile=logfile)
+        for func in (postfuncs or '').split():
+            exec_func(func, localdata, logfile=logfile)
     except FuncFailed as exc:
         event.fire(TaskFailed(exc.name, exc.logfile, localdata), localdata)
         raise
index a766f3241ae89b31b1fd260771eb90a77af1fe7b..4a12dd41e80a22cf2520e3fe18800dec24ffdeff 100644 (file)
@@ -265,13 +265,13 @@ class DataSmart(MutableMapping):
             self._makeShadowCopy(var)
         self.dict[var][flag] = flagvalue
 
-    def getVarFlag(self, var, flag, exp = False):
+    def getVarFlag(self, var, flag, expand=False):
         local_var = self._findVar(var)
         value = None
         if local_var:
             if flag in local_var:
                 value = copy.copy(local_var[flag])
-        if exp and value:
+        if expand and value:
             value = self.expand(value, None)
         return value