summaryrefslogtreecommitdiffstats
path: root/meta/classes/base.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/base.bbclass')
-rw-r--r--meta/classes/base.bbclass31
1 files changed, 30 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