summaryrefslogtreecommitdiff
path: root/meta/classes/base.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/base.bbclass')
-rw-r--r--meta/classes/base.bbclass28
1 files changed, 28 insertions, 0 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index aee75297e..1547ed030 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -621,4 +621,32 @@ def check_gcc3(data):
return False
+addtask cleanall after do_clean
+python do_cleanall() {
+ sstate_clean_cachefiles(d)
+
+ localdata = bb.data.createCopy(d)
+ bb.data.update_data(localdata)
+
+ dl_dir = bb.data.getVar('DL_DIR', localdata, True)
+ dl_dir = os.path.realpath(dl_dir)
+
+ src_uri = bb.data.getVar('SRC_URI', localdata, True)
+ if not src_uri:
+ return
+ for url in src_uri.split():
+ try:
+ local = bb.data.expand(bb.fetch.localpath(url, localdata), localdata)
+ except bb.MalformedUrl, e:
+ raise FuncFailed('Unable to generate local path for malformed uri: %s' % e)
+ if local is None:
+ continue
+ local = os.path.realpath(local)
+ if local.startswith(dl_dir):
+ bb.note("Removing %s*" % local)
+ oe.path.remove(local + "*")
+}
+do_cleanall[nostamp] = "1"
+
+
EXPORT_FUNCTIONS do_setscene do_fetch do_unpack do_configure do_compile do_install do_package