]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
build/siggen: Ensure a task signature file is generated for each task that is executed
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 25 May 2011 22:19:41 +0000 (23:19 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 25 May 2011 22:19:41 +0000 (23:19 +0100)
Tracing down signature changes and dependencies is hard unless the complete task
chain can be evaultated. Since we have the data available at task exeuction
time, writing it to disk makes sense.

This change is suboptimal internal knowledge stamp_internal() has leaks into
make_stamp() and the concepts used by this code need revisiting but the change
brings enough usability benefit to warrant its inclusion despite that.

Addresses issue [YOCTO #1074]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
lib/bb/build.py
lib/bb/siggen.py

index 92ef95d0a6c707951525916f3d60399945fe5ccd..115957b6de58ca57ee5e7fe9f7f6cdd0210edc28 100644 (file)
@@ -408,6 +408,12 @@ def make_stamp(task, d, file_name = None):
         f = open(stamp, "w")
         f.close()
 
+    # If we're in task context, write out a signature file for each task
+    # as it completes
+    if not task.endswith("_setscene") and task != "do_setscene" and not file_name:
+        file_name = d.getVar('BB_FILENAME', True)
+        bb.parse.siggen.dump_sigtask(file_name, task, d.getVar('STAMP', True), True)
+
 def del_stamp(task, d, file_name = None):
     """
     Removes a stamp for a given task
index 494282b2477ec397f6a4554644d8ce08793c392f..550280339c5b9fa468cce1889b428eca3fecc449 100644 (file)
@@ -47,6 +47,9 @@ class SignatureGenerator(object):
     def stampfile(self, stampbase, file_name, taskname, extrainfo):
         return ("%s.%s.%s" % (stampbase, taskname, extrainfo)).rstrip('.')
 
+    def dump_sigtask(self, fn, task, stampbase, runtime):
+        return
+
 class SignatureGeneratorBasic(SignatureGenerator):
     """
     """