diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2010-05-06 12:22:44 +0100 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-05-06 12:22:44 +0100 |
commit | 14196cb03190d9dac93be309763e3076385eb831 (patch) | |
tree | a3505abab79d1d44e4f59995efe5bc20074fe9bb | |
parent | 89497d8057caa4cc905ad4476d4725f285d2e1e1 (diff) | |
download | poky-14196cb03190d9dac93be309763e3076385eb831.tar.gz |
base.bbclass: Sync minor layout changes with OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
-rw-r--r-- | meta/classes/base.bbclass | 145 |
1 files changed, 68 insertions, 77 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 4e8ae127a7..d17f485c02 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass | |||
@@ -1,53 +1,12 @@ | |||
1 | BB_DEFAULT_TASK ?= "build" | 1 | BB_DEFAULT_TASK ?= "build" |
2 | 2 | ||
3 | inherit utils | 3 | inherit patch |
4 | 4 | inherit staging | |
5 | def base_dep_prepend(d): | ||
6 | # | ||
7 | # Ideally this will check a flag so we will operate properly in | ||
8 | # the case where host == build == target, for now we don't work in | ||
9 | # that case though. | ||
10 | # | ||
11 | |||
12 | deps = "" | ||
13 | |||
14 | # bb.utils.sha256_file() will return None on Python 2.4 because hashlib | ||
15 | # isn't present. In this case we use a shasum-native to checksum, so if | ||
16 | # hashlib isn't present then add shasum-native to the dependencies. | ||
17 | try: | ||
18 | import hashlib | ||
19 | except ImportError: | ||
20 | # Adding shasum-native as a dependency of shasum-native would be | ||
21 | # stupid, so don't do that. | ||
22 | if bb.data.getVar('PN', d, True) != "shasum-native": | ||
23 | deps = "shasum-native " | ||
24 | |||
25 | # INHIBIT_DEFAULT_DEPS doesn't apply to the patch command. Whether or not | ||
26 | # we need that built is the responsibility of the patch function / class, not | ||
27 | # the application. | ||
28 | if not bb.data.getVar('INHIBIT_DEFAULT_DEPS', d): | ||
29 | if (bb.data.getVar('HOST_SYS', d, 1) != | ||
30 | bb.data.getVar('BUILD_SYS', d, 1)): | ||
31 | deps += " virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}compilerlibs virtual/libc " | ||
32 | return deps | ||
33 | |||
34 | |||
35 | DEPENDS_prepend="${@base_dep_prepend(d)} " | ||
36 | DEPENDS_virtclass-native_prepend="${@base_dep_prepend(d)} " | ||
37 | DEPENDS_virtclass-nativesdk_prepend="${@base_dep_prepend(d)} " | ||
38 | |||
39 | |||
40 | def base_set_filespath(path, d): | ||
41 | filespath = [] | ||
42 | # The ":" ensures we have an 'empty' override | ||
43 | overrides = (bb.data.getVar("OVERRIDES", d, 1) or "") + ":" | ||
44 | for p in path: | ||
45 | for o in overrides.split(":"): | ||
46 | filespath.append(os.path.join(p, o)) | ||
47 | return ":".join(filespath) | ||
48 | |||
49 | FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", "${FILE_DIRNAME}/${P}", "${FILE_DIRNAME}/${PN}", "${FILE_DIRNAME}/${BP}", "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files", "${FILE_DIRNAME}" ], d)}" | ||
50 | 5 | ||
6 | inherit mirrors | ||
7 | inherit utils | ||
8 | inherit utility-tasks | ||
9 | inherit metadata_scm | ||
51 | 10 | ||
52 | die() { | 11 | die() { |
53 | oefatal "$*" | 12 | oefatal "$*" |
@@ -103,10 +62,59 @@ package_stagefile_shell() { | |||
103 | fi | 62 | fi |
104 | } | 63 | } |
105 | 64 | ||
106 | inherit utility-tasks | 65 | def base_dep_prepend(d): |
66 | # | ||
67 | # Ideally this will check a flag so we will operate properly in | ||
68 | # the case where host == build == target, for now we don't work in | ||
69 | # that case though. | ||
70 | # | ||
71 | |||
72 | deps = "" | ||
73 | |||
74 | # bb.utils.sha256_file() will return None on Python 2.4 because hashlib | ||
75 | # isn't present. In this case we use a shasum-native to checksum, so if | ||
76 | # hashlib isn't present then add shasum-native to the dependencies. | ||
77 | try: | ||
78 | import hashlib | ||
79 | except ImportError: | ||
80 | # Adding shasum-native as a dependency of shasum-native would be | ||
81 | # stupid, so don't do that. | ||
82 | if bb.data.getVar('PN', d, True) != "shasum-native": | ||
83 | deps = "shasum-native " | ||
84 | |||
85 | # INHIBIT_DEFAULT_DEPS doesn't apply to the patch command. Whether or not | ||
86 | # we need that built is the responsibility of the patch function / class, not | ||
87 | # the application. | ||
88 | if not bb.data.getVar('INHIBIT_DEFAULT_DEPS', d): | ||
89 | if (bb.data.getVar('HOST_SYS', d, 1) != | ||
90 | bb.data.getVar('BUILD_SYS', d, 1)): | ||
91 | deps += " virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}compilerlibs virtual/libc " | ||
92 | return deps | ||
93 | |||
94 | DEPENDS_prepend="${@base_dep_prepend(d)} " | ||
95 | DEPENDS_virtclass-native_prepend="${@base_dep_prepend(d)} " | ||
96 | DEPENDS_virtclass-nativesdk_prepend="${@base_dep_prepend(d)} " | ||
97 | |||
98 | |||
99 | def base_set_filespath(path, d): | ||
100 | filespath = [] | ||
101 | # The ":" ensures we have an 'empty' override | ||
102 | overrides = (bb.data.getVar("OVERRIDES", d, 1) or "") + ":" | ||
103 | for p in path: | ||
104 | for o in overrides.split(":"): | ||
105 | filespath.append(os.path.join(p, o)) | ||
106 | return ":".join(filespath) | ||
107 | |||
108 | FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", "${FILE_DIRNAME}/${P}", "${FILE_DIRNAME}/${PN}", "${FILE_DIRNAME}/${BP}", "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files", "${FILE_DIRNAME}" ], d)}" | ||
107 | 109 | ||
108 | SCENEFUNCS += "base_scenefunction" | 110 | SCENEFUNCS += "base_scenefunction" |
109 | 111 | ||
112 | python base_scenefunction () { | ||
113 | stamp = bb.data.getVar('STAMP', d, 1) + ".needclean" | ||
114 | if os.path.exists(stamp): | ||
115 | bb.build.exec_func("do_clean", d) | ||
116 | } | ||
117 | |||
110 | python base_do_setscene () { | 118 | python base_do_setscene () { |
111 | for f in (bb.data.getVar('SCENEFUNCS', d, 1) or '').split(): | 119 | for f in (bb.data.getVar('SCENEFUNCS', d, 1) or '').split(): |
112 | bb.build.exec_func(f, d) | 120 | bb.build.exec_func(f, d) |
@@ -116,13 +124,6 @@ python base_do_setscene () { | |||
116 | do_setscene[selfstamp] = "1" | 124 | do_setscene[selfstamp] = "1" |
117 | addtask setscene before do_fetch | 125 | addtask setscene before do_fetch |
118 | 126 | ||
119 | python base_scenefunction () { | ||
120 | stamp = bb.data.getVar('STAMP', d, 1) + ".needclean" | ||
121 | if os.path.exists(stamp): | ||
122 | bb.build.exec_func("do_clean", d) | ||
123 | } | ||
124 | |||
125 | |||
126 | addtask fetch | 127 | addtask fetch |
127 | do_fetch[dirs] = "${DL_DIR}" | 128 | do_fetch[dirs] = "${DL_DIR}" |
128 | python base_do_fetch() { | 129 | python base_do_fetch() { |
@@ -140,6 +141,9 @@ python base_do_fetch() { | |||
140 | except bb.fetch.NoMethodError: | 141 | except bb.fetch.NoMethodError: |
141 | (type, value, traceback) = sys.exc_info() | 142 | (type, value, traceback) = sys.exc_info() |
142 | raise bb.build.FuncFailed("No method: %s" % value) | 143 | raise bb.build.FuncFailed("No method: %s" % value) |
144 | except bb.MalformedUrl: | ||
145 | (type, value, traceback) = sys.exc_info() | ||
146 | raise bb.build.FuncFailed("Malformed URL: %s" % value) | ||
143 | 147 | ||
144 | try: | 148 | try: |
145 | bb.fetch.go(localdata) | 149 | bb.fetch.go(localdata) |
@@ -213,6 +217,10 @@ def oe_unpack_file(file, data, url = None): | |||
213 | cmd = 'gzip -dc %s > %s' % (file, efile) | 217 | cmd = 'gzip -dc %s > %s' % (file, efile) |
214 | elif file.endswith('.bz2'): | 218 | elif file.endswith('.bz2'): |
215 | cmd = 'bzip2 -dc %s > %s' % (file, efile) | 219 | cmd = 'bzip2 -dc %s > %s' % (file, efile) |
220 | elif file.endswith('.tar.xz'): | ||
221 | cmd = 'xz -dc %s | tar x --no-same-owner -f -' % file | ||
222 | elif file.endswith('.xz'): | ||
223 | cmd = 'xz -dc %s > %s' % (file, efile) | ||
216 | elif file.endswith('.zip') or file.endswith('.jar'): | 224 | elif file.endswith('.zip') or file.endswith('.jar'): |
217 | cmd = 'unzip -q -o' | 225 | cmd = 'unzip -q -o' |
218 | (type, host, path, user, pswd, parm) = bb.decodeurl(url) | 226 | (type, host, path, user, pswd, parm) = bb.decodeurl(url) |
@@ -277,7 +285,6 @@ python base_do_unpack() { | |||
277 | src_uri = bb.data.getVar('SRC_URI', localdata, True) | 285 | src_uri = bb.data.getVar('SRC_URI', localdata, True) |
278 | if not src_uri: | 286 | if not src_uri: |
279 | return | 287 | return |
280 | |||
281 | for url in src_uri.split(): | 288 | for url in src_uri.split(): |
282 | try: | 289 | try: |
283 | local = bb.data.expand(bb.fetch.localpath(url, localdata), localdata) | 290 | local = bb.data.expand(bb.fetch.localpath(url, localdata), localdata) |
@@ -289,8 +296,6 @@ python base_do_unpack() { | |||
289 | raise bb.build.FuncFailed() | 296 | raise bb.build.FuncFailed() |
290 | } | 297 | } |
291 | 298 | ||
292 | inherit metadata_scm | ||
293 | |||
294 | GIT_CONFIG = "${STAGING_DIR_NATIVE}/usr/etc/gitconfig" | 299 | GIT_CONFIG = "${STAGING_DIR_NATIVE}/usr/etc/gitconfig" |
295 | 300 | ||
296 | def generate_git_config(e): | 301 | def generate_git_config(e): |
@@ -315,7 +320,7 @@ def generate_git_config(e): | |||
315 | addhandler base_eventhandler | 320 | addhandler base_eventhandler |
316 | python base_eventhandler() { | 321 | python base_eventhandler() { |
317 | from bb import note, error, data | 322 | from bb import note, error, data |
318 | from bb.event import Handled, NotHandled, getName | 323 | from bb.event import getName |
319 | 324 | ||
320 | messages = {} | 325 | messages = {} |
321 | messages["Completed"] = "completed" | 326 | messages["Completed"] = "completed" |
@@ -364,7 +369,7 @@ python base_eventhandler() { | |||
364 | # | 369 | # |
365 | if name.startswith("StampUpdate"): | 370 | if name.startswith("StampUpdate"): |
366 | for (fn, task) in e.targets: | 371 | for (fn, task) in e.targets: |
367 | #print "%s %s" % (task, fn) | 372 | #print "%s %s" % (task, fn) |
368 | if task == "do_rebuild": | 373 | if task == "do_rebuild": |
369 | dir = "%s.*" % e.stampPrefix[fn] | 374 | dir = "%s.*" % e.stampPrefix[fn] |
370 | bb.note("Removing stamps: " + dir) | 375 | bb.note("Removing stamps: " + dir) |
@@ -375,15 +380,13 @@ python base_eventhandler() { | |||
375 | generate_git_config(e) | 380 | generate_git_config(e) |
376 | 381 | ||
377 | if not data in e.__dict__: | 382 | if not data in e.__dict__: |
378 | return NotHandled | 383 | return |
379 | 384 | ||
380 | log = data.getVar("EVENTLOG", e.data, 1) | 385 | log = data.getVar("EVENTLOG", e.data, 1) |
381 | if log: | 386 | if log: |
382 | logfile = file(log, "a") | 387 | logfile = file(log, "a") |
383 | logfile.write("%s\n" % msg) | 388 | logfile.write("%s\n" % msg) |
384 | logfile.close() | 389 | logfile.close() |
385 | |||
386 | return NotHandled | ||
387 | } | 390 | } |
388 | 391 | ||
389 | addtask configure after do_unpack do_patch | 392 | addtask configure after do_unpack do_patch |
@@ -403,8 +406,6 @@ base_do_compile() { | |||
403 | fi | 406 | fi |
404 | } | 407 | } |
405 | 408 | ||
406 | inherit staging | ||
407 | |||
408 | addtask install after do_compile | 409 | addtask install after do_compile |
409 | do_install[dirs] = "${D} ${S} ${B}" | 410 | do_install[dirs] = "${D} ${S} ${B}" |
410 | # Remove and re-create ${D} so that is it guaranteed to be empty | 411 | # Remove and re-create ${D} so that is it guaranteed to be empty |
@@ -422,8 +423,7 @@ addtask build after do_populate_sysroot | |||
422 | do_build = "" | 423 | do_build = "" |
423 | do_build[func] = "1" | 424 | do_build[func] = "1" |
424 | 425 | ||
425 | 426 | python () { | |
426 | def base_after_parse(d): | ||
427 | import exceptions | 427 | import exceptions |
428 | 428 | ||
429 | source_mirror_fetch = bb.data.getVar('SOURCE_MIRROR_FETCH', d, 0) | 429 | source_mirror_fetch = bb.data.getVar('SOURCE_MIRROR_FETCH', d, 0) |
@@ -527,9 +527,6 @@ def base_after_parse(d): | |||
527 | break | 527 | break |
528 | 528 | ||
529 | bb.data.setVar('MULTIMACH_ARCH', multiarch, d) | 529 | bb.data.setVar('MULTIMACH_ARCH', multiarch, d) |
530 | |||
531 | python () { | ||
532 | base_after_parse(d) | ||
533 | } | 530 | } |
534 | 531 | ||
535 | def check_app_exists(app, d): | 532 | def check_app_exists(app, d): |
@@ -549,10 +546,4 @@ def check_gcc3(data): | |||
549 | 546 | ||
550 | return False | 547 | return False |
551 | 548 | ||
552 | # Patch handling | ||
553 | inherit patch | ||
554 | |||
555 | EXPORT_FUNCTIONS do_setscene do_fetch do_unpack do_configure do_compile do_install do_package | 549 | EXPORT_FUNCTIONS do_setscene do_fetch do_unpack do_configure do_compile do_install do_package |
556 | |||
557 | inherit mirrors | ||
558 | |||