aboutsummaryrefslogtreecommitdiffstats
path: root/classes/base.bbclass
diff options
context:
space:
mode:
authorChris Larson <clarson@kergoth.com>2008-11-20 12:30:05 -0700
committerChris Larson <clarson@kergoth.com>2008-11-20 12:33:05 -0700
commit190d7875900a18dc31dd695d02ce52b2c82f8326 (patch)
tree2aeb877fe62513af21aee40a8aa3d9870f6cd37a /classes/base.bbclass
parent4d6fc421371e43f64e77df069369ef0ba3d792df (diff)
downloadopenembedded-190d7875900a18dc31dd695d02ce52b2c82f8326.tar.gz
base.bbclass: Add distclean task to clean a package w/ its fetched sources
Diffstat (limited to 'classes/base.bbclass')
-rw-r--r--classes/base.bbclass28
1 files changed, 27 insertions, 1 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass
index 10648e9885..00bbffd096 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -499,6 +499,32 @@ python base_do_mrproper() {
bb.build.exec_func('do_clean', d)
}
+addtask distclean
+do_distclean[dirs] = "${TOPDIR}"
+do_distclean[nostamp] = "1"
+python base_do_distclean() {
+ """clear downloaded sources, build and temp directories"""
+ import os
+
+ bb.build.exec_func('do_clean', d)
+
+ src_uri = bb.data.getVar('SRC_URI', d, 1)
+ if not src_uri:
+ return
+
+ for uri in src_uri.split()
+ if type == "file":
+ continue
+
+ try:
+ local = bb.data.expand(bb.fetch.localpath(uri, d), d)
+ bb.note("removing %s" % local)
+ os.remove(local)
+ os.remove(local + ".md5")
+ except bb.MalformedUrl, e:
+ raise FuncFailed('Unable to generate local path for %s' % e)
+}
+
SCENEFUNCS += "base_scenefunction"
python base_do_setscene () {
@@ -1145,7 +1171,7 @@ inherit patch
# Move to autotools.bbclass?
inherit siteinfo
-EXPORT_FUNCTIONS do_setscene do_clean do_mrproper do_fetch do_unpack do_configure do_compile do_install do_package do_populate_pkgs do_stage do_rebuild do_fetchall
+EXPORT_FUNCTIONS do_setscene do_clean do_mrproper do_distclean do_fetch do_unpack do_configure do_compile do_install do_package do_populate_pkgs do_stage do_rebuild do_fetchall
MIRRORS[func] = "0"
MIRRORS () {