From 4b2a355a3134cff36b220c16b3b8816b202e03ce Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 27 Aug 2010 12:33:58 +0100 Subject: sstate/utility-tasks: Ensure do_clean functions correctly and removes shared state Signed-off-by: Richard Purdie --- meta/classes/sstate.bbclass | 9 +++++---- meta/classes/utility-tasks.bbclass | 5 +++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index 0aa8505f49..08c22293cc 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass @@ -188,23 +188,24 @@ def sstate_clean(ss, d): bb.utils.unlockfile(lock) SCENEFUNCS += "sstate_cleanall" +CLEANFUNCS += "sstate_cleanall" python sstate_cleanall() { import fnmatch - bb.note("Removing %s from staging" % bb.data.getVar('PN', d, True)) + bb.note("Removing shared state for package %s" % bb.data.getVar('PN', d, True)) manifest_dir = bb.data.getVar('PSTAGE2_MANIFESTS', d, True) manifest_pattern = bb.data.expand("manifest-${PN}.*", d) + if not os.path.exists(manifest_dir): + return + for manifest in (os.listdir(manifest_dir)): if fnmatch.fnmatch(manifest, manifest_pattern): sstate_clean_manifest(manifest_dir + "/" + manifest, d) } -do_clean[postfuncs] += "sstate_cleanall" -do_clean[dirs] += "${PSTAGE2_MANIFESTS}" - def sstate_package(ss, d): import oe.path diff --git a/meta/classes/utility-tasks.bbclass b/meta/classes/utility-tasks.bbclass index 32333baf14..b3609965e7 100644 --- a/meta/classes/utility-tasks.bbclass +++ b/meta/classes/utility-tasks.bbclass @@ -10,6 +10,8 @@ python do_listtasks() { sys.__stdout__.write("%s\n" % e) } +CLEANFUNCS ?= "" + addtask clean do_clean[nostamp] = "1" python do_clean() { @@ -21,6 +23,9 @@ python do_clean() { dir = "%s.*" % bb.data.expand(bb.data.getVar('STAMP', d), d) bb.note("Removing " + dir) oe.path.remove(dir) + + for f in (bb.data.getVar('CLEANFUNCS', d, 1) or '').split(): + bb.build.exec_func(f, d) } addtask rebuild after do_${BB_DEFAULT_TASK} -- cgit v1.2.3-54-g00ecf