summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/build.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/build.py')
-rw-r--r--bitbake/lib/bb/build.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
index 82d22f7165..85af42c684 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -470,11 +470,40 @@ def stamp_internal(taskname, d, file_name):
470 470
471 return stamp 471 return stamp
472 472
473def stamp_cleanmask_internal(taskname, d, file_name):
474 """
475 Internal stamp helper function to generate stamp cleaning mask
476 Returns the stamp path+filename
477
478 In the bitbake core, d can be a CacheData and file_name will be set.
479 When called in task context, d will be a data store, file_name will not be set
480 """
481 taskflagname = taskname
482 if taskname.endswith("_setscene") and taskname != "do_setscene":
483 taskflagname = taskname.replace("_setscene", "")
484
485 if file_name:
486 stamp = d.stamp_base_clean[file_name].get(taskflagname) or d.stampclean[file_name]
487 extrainfo = d.stamp_extrainfo[file_name].get(taskflagname) or ""
488 else:
489 stamp = d.getVarFlag(taskflagname, 'stamp-base-clean', True) or d.getVar('STAMPCLEAN', True)
490 file_name = d.getVar('BB_FILENAME', True)
491 extrainfo = d.getVarFlag(taskflagname, 'stamp-extra-info', True) or ""
492
493 if not stamp:
494 return
495
496 return bb.parse.siggen.stampcleanmask(stamp, file_name, taskname, extrainfo)
497
473def make_stamp(task, d, file_name = None): 498def make_stamp(task, d, file_name = None):
474 """ 499 """
475 Creates/updates a stamp for a given task 500 Creates/updates a stamp for a given task
476 (d can be a data dict or dataCache) 501 (d can be a data dict or dataCache)
477 """ 502 """
503 cleanmask = stamp_cleanmask_internal(task, d, file_name)
504 if cleanmask:
505 bb.utils.remove(cleanmask)
506
478 stamp = stamp_internal(task, d, file_name) 507 stamp = stamp_internal(task, d, file_name)
479 # Remove the file and recreate to force timestamp 508 # Remove the file and recreate to force timestamp
480 # change on broken NFS filesystems 509 # change on broken NFS filesystems