diff options
-rw-r--r-- | meta/classes/base.bbclass | 31 | ||||
-rw-r--r-- | meta/classes/utility-tasks.bbclass | 19 |
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 (:=) |
98 | THISDIR = "${@os.path.dirname(bb.data.getVar('FILE', d, True))}" | 98 | THISDIR = "${@os.path.dirname(bb.data.getVar('FILE', d, True))}" |
99 | 99 | ||
100 | SCENEFUNCS += "base_scenefunction" | ||
101 | |||
102 | python 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 | |||
108 | python 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 | } | ||
114 | do_setscene[selfstamp] = "1" | ||
115 | addtask setscene before do_fetch | ||
116 | |||
100 | addtask fetch | 117 | addtask fetch |
101 | do_fetch[dirs] = "${DL_DIR}" | 118 | do_fetch[dirs] = "${DL_DIR}" |
102 | python base_do_fetch() { | 119 | python 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() { | |||
452 | do_cleanall[nostamp] = "1" | 481 | do_cleanall[nostamp] = "1" |
453 | 482 | ||
454 | 483 | ||
455 | EXPORT_FUNCTIONS do_fetch do_unpack do_configure do_compile do_install do_package | 484 | EXPORT_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 | ||
31 | addtask rebuild after do_${BB_DEFAULT_TASK} | ||
32 | do_rebuild[dirs] = "${TOPDIR}" | ||
33 | do_rebuild[nostamp] = "1" | ||
34 | python 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 | |||
31 | addtask checkuri | 50 | addtask checkuri |
32 | do_checkuri[nostamp] = "1" | 51 | do_checkuri[nostamp] = "1" |
33 | python do_checkuri() { | 52 | python do_checkuri() { |