# INHERIT += "rm_work"
#
+# Use the completion scheulder by default when rm_work is active
+# to try and reduce disk usage
+BB_SCHEDULER ?= "completion"
+
+RMWORK_ORIG_TASK := "${BB_DEFAULT_TASK}"
+BB_DEFAULT_TASK = "rm_work_all"
+
do_rm_work () {
cd ${WORKDIR}
for dir in *
do
- if [ `basename ${S}` = $dir ]; then
- rm -rf $dir/*
- elif [ $dir != 'temp' ]; then
- rm -rf $dir
+ if [ `basename ${dir}` = "temp" ]; then
+ echo "Not removing temp"
+ else
+ echo "Removing $dir" ; rm $dir -rf
fi
done
}
+addtask rm_work after do_${RMWORK_ORIG_TASK}
-addtask rmall after do_rm_work
-do_rmall[recrdeptask] = "do_rm_work"
-do_rmall() {
- :
+do_rm_work_all () {
+ :
}
+do_rm_work_all[recrdeptask] = "do_rm_work"
+addtask rm_work_all after do_rm_work
+
+addhandler rmwork_stampfixing_eventhandler
+python rmwork_stampfixing_eventhandler() {
+ from bb.event import getName
+ import os
+
+ if getName(e) == "StampUpdate":
+ for (fn, task) in e.targets:
+ if task == 'rm_work_all':
+ continue
+ stamp = "%s.do_rm_work" % e.stampPrefix[fn]
+ if os.path.exists(stamp):
+ dir = "%s.*" % e.stampPrefix[fn]
+ bb.note("Removing stamps: " + dir)
+ os.system('rm -f '+ dir)
+
+ return NotHandled
+}
-addtask rm_work before do_build
-addtask rm_work after do_populate_staging