summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/base.bbclass31
-rw-r--r--meta/classes/utility-tasks.bbclass19
2 files changed, 49 insertions, 1 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 300981010a..a674f52fb2 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -97,6 +97,23 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", "${FILE_DIRNAME}/$
97# in the context of the location its used (:=) 97# in the context of the location its used (:=)
98THISDIR = "${@os.path.dirname(bb.data.getVar('FILE', d, True))}" 98THISDIR = "${@os.path.dirname(bb.data.getVar('FILE', d, True))}"
99 99
100SCENEFUNCS += "base_scenefunction"
101
102python base_scenefunction () {
103 stamp = bb.data.getVar('STAMP', d, 1) + ".needclean"
104 if os.path.exists(stamp):
105 bb.build.exec_func("do_clean", d)
106}
107
108python base_do_setscene () {
109 for f in (bb.data.getVar('SCENEFUNCS', d, 1) or '').split():
110 bb.build.exec_func(f, d)
111 if not os.path.exists(bb.build.stampfile("do_setscene", d)):
112 bb.build.make_stamp("do_setscene", d)
113}
114do_setscene[selfstamp] = "1"
115addtask setscene before do_fetch
116
100addtask fetch 117addtask fetch
101do_fetch[dirs] = "${DL_DIR}" 118do_fetch[dirs] = "${DL_DIR}"
102python base_do_fetch() { 119python base_do_fetch() {
@@ -202,6 +219,18 @@ python base_eventhandler() {
202 if pesteruser: 219 if pesteruser:
203 bb.fatal('The following variable(s) were not set: %s\nPlease set them directly, or choose a MACHINE or DISTRO that sets them.' % ', '.join(pesteruser)) 220 bb.fatal('The following variable(s) were not set: %s\nPlease set them directly, or choose a MACHINE or DISTRO that sets them.' % ', '.join(pesteruser))
204 221
222 #
223 # Handle removing stamps for 'rebuild' task
224 #
225 if name.startswith("StampUpdate"):
226 for (fn, task) in e.targets:
227 #print "%s %s" % (task, fn)
228 if task == "do_rebuild":
229 dir = "%s.*" % e.stampPrefix[fn]
230 bb.note("Removing stamps: " + dir)
231 os.system('rm -f '+ dir)
232 os.system('touch ' + e.stampPrefix[fn] + '.needclean')
233
205 if name == "ConfigParsed": 234 if name == "ConfigParsed":
206 generate_git_config(e) 235 generate_git_config(e)
207 236
@@ -452,4 +481,4 @@ python do_cleanall() {
452do_cleanall[nostamp] = "1" 481do_cleanall[nostamp] = "1"
453 482
454 483
455EXPORT_FUNCTIONS do_fetch do_unpack do_configure do_compile do_install do_package 484EXPORT_FUNCTIONS do_setscene do_fetch do_unpack do_configure do_compile do_install do_package
diff --git a/meta/classes/utility-tasks.bbclass b/meta/classes/utility-tasks.bbclass
index 64bd84a5d3..aeac2bce40 100644
--- a/meta/classes/utility-tasks.bbclass
+++ b/meta/classes/utility-tasks.bbclass
@@ -28,6 +28,25 @@ python do_clean() {
28 bb.build.exec_func(f, d) 28 bb.build.exec_func(f, d)
29} 29}
30 30
31addtask rebuild after do_${BB_DEFAULT_TASK}
32do_rebuild[dirs] = "${TOPDIR}"
33do_rebuild[nostamp] = "1"
34python do_rebuild() {
35 """rebuild a package"""
36}
37
38#addtask mrproper
39#do_mrproper[dirs] = "${TOPDIR}"
40#do_mrproper[nostamp] = "1"
41#python do_mrproper() {
42# """clear downloaded sources, build and temp directories"""
43# dir = bb.data.expand("${DL_DIR}", d)
44# if dir == '/': bb.build.FuncFailed("wrong DATADIR")
45# bb.debug(2, "removing " + dir)
46# os.system('rm -rf ' + dir)
47# bb.build.exec_func('do_clean', d)
48#}
49
31addtask checkuri 50addtask checkuri
32do_checkuri[nostamp] = "1" 51do_checkuri[nostamp] = "1"
33python do_checkuri() { 52python do_checkuri() {