diff options
author | Richard Purdie <richard@openedhand.com> | 2006-11-16 15:02:15 +0000 |
---|---|---|
committer | Richard Purdie <richard@openedhand.com> | 2006-11-16 15:02:15 +0000 |
commit | 306b7c7a9757ead077363074e7bbac2e5c03e7c5 (patch) | |
tree | 6935017a9af749c46816881c86258f514384ba1c /bitbake/lib/bb/data.py | |
parent | 65930a38e415ae4a0182e1cea1be838e0ada50ee (diff) | |
download | poky-306b7c7a9757ead077363074e7bbac2e5c03e7c5.tar.gz |
bitbake: Upgrade from 1.4 -> 1.7.4ish
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@863 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'bitbake/lib/bb/data.py')
-rw-r--r-- | bitbake/lib/bb/data.py | 49 |
1 files changed, 41 insertions, 8 deletions
diff --git a/bitbake/lib/bb/data.py b/bitbake/lib/bb/data.py index 55d1cc9053..819dff9679 100644 --- a/bitbake/lib/bb/data.py +++ b/bitbake/lib/bb/data.py | |||
@@ -45,7 +45,8 @@ else: | |||
45 | path = os.path.dirname(os.path.dirname(sys.argv[0])) | 45 | path = os.path.dirname(os.path.dirname(sys.argv[0])) |
46 | sys.path.insert(0,path) | 46 | sys.path.insert(0,path) |
47 | 47 | ||
48 | from bb import note, debug, data_smart | 48 | from bb import data_smart |
49 | import bb | ||
49 | 50 | ||
50 | _dict_type = data_smart.DataSmart | 51 | _dict_type = data_smart.DataSmart |
51 | 52 | ||
@@ -362,10 +363,12 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False): | |||
362 | val.rstrip() | 363 | val.rstrip() |
363 | if not val: | 364 | if not val: |
364 | return 0 | 365 | return 0 |
366 | |||
367 | varExpanded = expand(var, d) | ||
365 | 368 | ||
366 | if getVarFlag(var, "func", d): | 369 | if getVarFlag(var, "func", d): |
367 | # NOTE: should probably check for unbalanced {} within the var | 370 | # NOTE: should probably check for unbalanced {} within the var |
368 | o.write("%s() {\n%s\n}\n" % (var, val)) | 371 | o.write("%s() {\n%s\n}\n" % (varExpanded, val)) |
369 | else: | 372 | else: |
370 | if getVarFlag(var, "export", d): | 373 | if getVarFlag(var, "export", d): |
371 | o.write('export ') | 374 | o.write('export ') |
@@ -375,7 +378,7 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False): | |||
375 | # if we're going to output this within doublequotes, | 378 | # if we're going to output this within doublequotes, |
376 | # to a shell, we need to escape the quotes in the var | 379 | # to a shell, we need to escape the quotes in the var |
377 | alter = re.sub('"', '\\"', val.strip()) | 380 | alter = re.sub('"', '\\"', val.strip()) |
378 | o.write('%s="%s"\n' % (var, alter)) | 381 | o.write('%s="%s"\n' % (varExpanded, alter)) |
379 | return 1 | 382 | return 1 |
380 | 383 | ||
381 | 384 | ||
@@ -430,8 +433,38 @@ def update_data(d): | |||
430 | >>> update_data(d) | 433 | >>> update_data(d) |
431 | >>> print getVar('TEST', d) | 434 | >>> print getVar('TEST', d) |
432 | local | 435 | local |
436 | |||
437 | CopyMonster: | ||
438 | >>> e = d.createCopy() | ||
439 | >>> setVar('TEST_foo', 'foo', e) | ||
440 | >>> update_data(e) | ||
441 | >>> print getVar('TEST', e) | ||
442 | local | ||
443 | |||
444 | >>> setVar('OVERRIDES', 'arm:ramses:local:foo', e) | ||
445 | >>> update_data(e) | ||
446 | >>> print getVar('TEST', e) | ||
447 | foo | ||
448 | |||
449 | >>> f = d.createCopy() | ||
450 | >>> setVar('TEST_moo', 'something', f) | ||
451 | >>> setVar('OVERRIDES', 'moo:arm:ramses:local:foo', e) | ||
452 | >>> update_data(e) | ||
453 | >>> print getVar('TEST', e) | ||
454 | foo | ||
455 | |||
456 | |||
457 | >>> h = init() | ||
458 | >>> setVar('SRC_URI', 'file://append.foo;patch=1 ', h) | ||
459 | >>> g = h.createCopy() | ||
460 | >>> setVar('SRC_URI_append_arm', 'file://other.foo;patch=1', g) | ||
461 | >>> setVar('OVERRIDES', 'arm:moo', g) | ||
462 | >>> update_data(g) | ||
463 | >>> print getVar('SRC_URI', g) | ||
464 | file://append.foo;patch=1 file://other.foo;patch=1 | ||
465 | |||
433 | """ | 466 | """ |
434 | debug(2, "update_data()") | 467 | bb.msg.debug(2, bb.msg.domain.Data, "update_data()") |
435 | 468 | ||
436 | # now ask the cookie monster for help | 469 | # now ask the cookie monster for help |
437 | #print "Cookie Monster" | 470 | #print "Cookie Monster" |
@@ -460,7 +493,7 @@ def update_data(d): | |||
460 | l = len(o)+1 | 493 | l = len(o)+1 |
461 | 494 | ||
462 | # see if one should even try | 495 | # see if one should even try |
463 | if not o in d._seen_overrides: | 496 | if not d._seen_overrides.has_key(o): |
464 | continue | 497 | continue |
465 | 498 | ||
466 | vars = d._seen_overrides[o] | 499 | vars = d._seen_overrides[o] |
@@ -469,10 +502,10 @@ def update_data(d): | |||
469 | try: | 502 | try: |
470 | d[name] = d[var] | 503 | d[name] = d[var] |
471 | except: | 504 | except: |
472 | note ("Untracked delVar") | 505 | bb.msg.note(1, bb.msg.domain.Data, "Untracked delVar") |
473 | 506 | ||
474 | # now on to the appends and prepends | 507 | # now on to the appends and prepends |
475 | if '_append' in d._special_values: | 508 | if d._special_values.has_key('_append'): |
476 | appends = d._special_values['_append'] or [] | 509 | appends = d._special_values['_append'] or [] |
477 | for append in appends: | 510 | for append in appends: |
478 | for (a, o) in getVarFlag(append, '_append', d) or []: | 511 | for (a, o) in getVarFlag(append, '_append', d) or []: |
@@ -487,7 +520,7 @@ def update_data(d): | |||
487 | setVar(append, sval, d) | 520 | setVar(append, sval, d) |
488 | 521 | ||
489 | 522 | ||
490 | if '_prepend' in d._special_values: | 523 | if d._special_values.has_key('_prepend'): |
491 | prepends = d._special_values['_prepend'] or [] | 524 | prepends = d._special_values['_prepend'] or [] |
492 | 525 | ||
493 | for prepend in prepends: | 526 | for prepend in prepends: |