merge of '1458e9ca6c6d9b78bff4114c4a3b09c7aa6b7a8e'
[vuplus_openembedded] / classes / rm_work.bbclass
1 #
2 # Removes source after build
3 #
4 # To use it add that line to conf/local.conf:
5 #
6 # INHERIT += "rm_work"
7 #
8
9 # Use the completion scheulder by default when rm_work is active
10 # to try and reduce disk usage
11 BB_SCHEDULER ?= "completion"
12
13 RMWORK_ORIG_TASK := "${BB_DEFAULT_TASK}"
14 BB_DEFAULT_TASK = "rm_work_all"
15
16 do_rm_work () {
17     cd ${WORKDIR}
18     for dir in *
19     do
20         if [ `basename ${S}` = $dir ]; then
21             rm -rf $dir
22         fi
23     done
24 }
25 addtask rm_work after do_${RMWORK_ORIG_TASK}
26
27 do_rm_work_all () {
28         :
29 }
30 do_rm_work_all[recrdeptask] = "do_rm_work"
31 addtask rm_work_all after do_rm_work
32
33
34 addhandler rmwork_stampfixing_eventhandler
35 python rmwork_stampfixing_eventhandler() {
36     from bb.event import getName
37     import os
38
39     if getName(e) == "StampUpdate":
40         for (fn, task) in e.targets:
41             if task == 'rm_work_all':
42                 continue
43             stamp = "%s.do_rm_work" % e.stampPrefix[fn]
44             if os.path.exists(stamp):
45                 dir = "%s.*" % e.stampPrefix[fn]
46                 bb.note("Removing stamps: " + dir)
47                 os.system('rm -f '+ dir)
48
49     return NotHandled
50 }
51