srctree, clean: cleanup & split out do_clean bits into clean.bbclass.
authorChris Larson <clarson@mvista.com>
Wed, 26 Aug 2009 21:44:04 +0000 (14:44 -0700)
committerChris Larson <clarson@mvista.com>
Wed, 26 Aug 2009 21:45:02 +0000 (14:45 -0700)
Signed-off-by: Chris Larson <clarson@mvista.com>
classes/clean.bbclass [new file with mode: 0644]
classes/srctree.bbclass

diff --git a/classes/clean.bbclass b/classes/clean.bbclass
new file mode 100644 (file)
index 0000000..65c1ab5
--- /dev/null
@@ -0,0 +1,53 @@
+def clean_builddir(d):
+       from shutil import rmtree
+
+       builddir = d.getVar("B", True)
+       srcdir = d.getVar("S", True)
+       if builddir != srcdir:
+               rmtree(builddir, ignore_errors=True)
+
+def clean_stamps(d):
+       from glob import glob
+       from bb import note
+       from bb.data import expand
+       from os import unlink
+
+       note("Removing stamps")
+       for stamp in glob(expand('${STAMP}.*', d)):
+               try:
+                       unlink(stamp)
+               except OSError:
+                       pass
+
+def clean_workdir(d):
+       from shutil import rmtree
+       from bb import note
+
+       workdir = d.getVar("WORKDIR", 1)
+       note("Removing %s" % workdir)
+       rmtree(workdir, ignore_errors=True)
+
+def clean_git(d):
+       from subprocess import call
+
+       call(["git", "clean", "-d", "-f", "-X"], cwd=d.getVar("S", True))
+
+def clean_make(d):
+       import bb
+
+       bb.note("Running make clean")
+       try:
+               bb.build.exec_func("__do_clean_make", d)
+       except bb.build.FuncFailed:
+               pass
+
+__do_clean_make () {
+       oe_runmake clean
+}
+
+python do_clean () {
+       clean_stamps(d)
+       clean_workdir(d)
+       clean_builddir(d)
+       clean_make(d)
+}
index 67cb9ff..ce9cb83 100644 (file)
 # operation.
 
 
+# Grab convenience methods & sane default for do_clean
+inherit clean
+
+# Build here
 S = "${FILE_DIRNAME}"
 SRC_URI = ""
 
-#TYPE = "${@'${PN}'.replace('${BPN}', '').strip()}"
-#WORKDIR = "${S}/tmp${TYPE}.${MULTIMACH_HOST_SYS}"
-#STAMP = "${WORKDIR}/tasks/stamp"
-#WORKDIR_LOCAL = "${S}/tmp${TYPE}.${MULTIMACH_HOST_SYS}"
-#T = "${WORKDIR_LOCAL}/bitbake-tasks"
-
-# Hack, so things don't explode in builds that don't inherit package
-do_package ?= "    pass"
-do_package[func] = "1"
-do_package[python] = "1"
-addtask package after do_populate_staging
-
-# This stuff is needed to facilitate variants (normal, native, cross, sdk)
-# that share a ${S}.  It's ugly as hell.  Only really necessary for recipes
-# that can't use a ${B}, and which have variants like native.  Not sure what
-# the best solution is long term.
-#
-# We merge configure+compile+install into the populate_staging task, uses a
-# lock file.  This ensures that none of the tasks which access ${S} can
-# interleave amongst the recipes that share that ${S}.
 
 def merge_tasks(d):
        """
@@ -130,56 +114,8 @@ python do_populate_staging () {
 }
 do_populate_staging[lockfiles] += "${S}/.lock"
 
-make_do_clean () {
-       oe_runmake clean
-}
-
-def clean_builddir(d):
-       from shutil import rmtree
-
-       builddir = d.getVar("B", True)
-       srcdir = d.getVar("S", True)
-       if builddir != srcdir:
-               rmtree(builddir, ignore_errors=True)
-
-def clean_stamps(d):
-       from glob import glob
-       from bb import note
-       from bb.data import expand
-       from os import unlink
-
-       note("Removing stamps")
-       for stamp in glob(expand('${STAMP}.*', d)):
-               try:
-                       unlink(stamp)
-               except OSError:
-                       pass
-
-def clean_workdir(d):
-       from shutil import rmtree
-       from bb import note
-
-       workdir = d.getVar("WORKDIR", 1)
-       note("Removing %s" % workdir)
-       rmtree(workdir, ignore_errors=True)
-
-def clean_git(d):
-       from subprocess import call
-
-       call(["git", "clean", "-d", "-f", "-X"], cwd=d.getVar("S", True))
-
-def clean_make(d):
-       import bb
-
-       bb.note("Running make clean")
-       try:
-               bb.build.exec_func("make_do_clean", d)
-       except bb.build.FuncFailed:
-               pass
-
-python do_clean () {
-       clean_stamps(d)
-       clean_workdir(d)
-       clean_builddir(d)
-       clean_make(d)
-}
+# Hack, so things don't explode in builds that don't inherit package
+do_package ?= "    pass"
+do_package[func] = "1"
+do_package[python] = "1"
+addtask package after do_populate_staging