diff options
Diffstat (limited to 'meta/classes/base.bbclass')
| -rw-r--r-- | meta/classes/base.bbclass | 92 |
1 files changed, 48 insertions, 44 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 299bf7bee2..d8853e5464 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass | |||
| @@ -666,52 +666,56 @@ python read_subpackage_metadata () { | |||
| 666 | bb.data.setVar(key, sdata[key], d) | 666 | bb.data.setVar(key, sdata[key], d) |
| 667 | } | 667 | } |
| 668 | 668 | ||
| 669 | python __anonymous () { | 669 | def base_after_parse_two(d): |
| 670 | import exceptions | 670 | import bb |
| 671 | need_host = bb.data.getVar('COMPATIBLE_HOST', d, 1) | 671 | import exceptions |
| 672 | if need_host: | 672 | need_host = bb.data.getVar('COMPATIBLE_HOST', d, 1) |
| 673 | import re | 673 | if need_host: |
| 674 | this_host = bb.data.getVar('HOST_SYS', d, 1) | 674 | import re |
| 675 | if not re.match(need_host, this_host): | 675 | this_host = bb.data.getVar('HOST_SYS', d, 1) |
| 676 | raise bb.parse.SkipPackage("incompatible with host %s" % this_host) | 676 | if not re.match(need_host, this_host): |
| 677 | 677 | raise bb.parse.SkipPackage("incompatible with host %s" % this_host) | |
| 678 | need_machine = bb.data.getVar('COMPATIBLE_MACHINE', d, 1) | 678 | |
| 679 | if need_machine: | 679 | need_machine = bb.data.getVar('COMPATIBLE_MACHINE', d, 1) |
| 680 | import re | 680 | if need_machine: |
| 681 | this_machine = bb.data.getVar('MACHINE', d, 1) | 681 | import re |
| 682 | if this_machine and not re.match(need_machine, this_machine): | 682 | this_machine = bb.data.getVar('MACHINE', d, 1) |
| 683 | raise bb.parse.SkipPackage("incompatible with machine %s" % this_machine) | 683 | if this_machine and not re.match(need_machine, this_machine): |
| 684 | 684 | raise bb.parse.SkipPackage("incompatible with machine %s" % this_machine) | |
| 685 | pn = bb.data.getVar('PN', d, 1) | 685 | |
| 686 | 686 | pn = bb.data.getVar('PN', d, 1) | |
| 687 | srcdate = bb.data.getVar('SRCDATE_%s' % pn, d, 1) | 687 | |
| 688 | if srcdate != None: | 688 | srcdate = bb.data.getVar('SRCDATE_%s' % pn, d, 1) |
| 689 | bb.data.setVar('SRCDATE', srcdate, d) | 689 | if srcdate != None: |
| 690 | 690 | bb.data.setVar('SRCDATE', srcdate, d) | |
| 691 | use_nls = bb.data.getVar('USE_NLS_%s' % pn, d, 1) | 691 | |
| 692 | if use_nls != None: | 692 | use_nls = bb.data.getVar('USE_NLS_%s' % pn, d, 1) |
| 693 | bb.data.setVar('USE_NLS', use_nls, d) | 693 | if use_nls != None: |
| 694 | } | 694 | bb.data.setVar('USE_NLS', use_nls, d) |
| 695 | |||
| 696 | def base_after_parse(d): | ||
| 697 | import bb, os | ||
| 698 | mach_arch = bb.data.getVar('MACHINE_ARCH', d, 1) | ||
| 699 | old_arch = bb.data.getVar('PACKAGE_ARCH', d, 1) | ||
| 700 | if (old_arch == mach_arch): | ||
| 701 | # Nothing to do | ||
| 702 | return | ||
| 703 | if (bb.data.getVar('SRC_URI_OVERRIDES_PACKAGE_ARCH', d, 1) == '0'): | ||
| 704 | return | ||
| 705 | paths = [] | ||
| 706 | for p in [ "${FILE_DIRNAME}/${PF}", "${FILE_DIRNAME}/${P}", "${FILE_DIRNAME}/${PN}", "${FILE_DIRNAME}/files", "${FILE_DIRNAME}" ]: | ||
| 707 | paths.append(bb.data.expand(os.path.join(p, mach_arch), d)) | ||
| 708 | for s in bb.data.getVar('SRC_URI', d, 1).split(): | ||
| 709 | local = bb.data.expand(bb.fetch.localpath(s, d), d) | ||
| 710 | for mp in paths: | ||
| 711 | if local.startswith(mp): | ||
| 712 | #bb.note("overriding PACKAGE_ARCH from %s to %s" % (old_arch, mach_arch)) | ||
| 713 | bb.data.setVar('PACKAGE_ARCH', mach_arch, d) | ||
| 714 | return | ||
| 695 | 715 | ||
| 696 | python () { | 716 | python () { |
| 697 | import bb, os | 717 | base_after_parse_two(d) |
| 698 | mach_arch = bb.data.getVar('MACHINE_ARCH', d, 1) | 718 | base_after_parse(d) |
| 699 | old_arch = bb.data.getVar('PACKAGE_ARCH', d, 1) | ||
| 700 | if (old_arch == mach_arch): | ||
| 701 | # Nothing to do | ||
| 702 | return | ||
| 703 | if (bb.data.getVar('SRC_URI_OVERRIDES_PACKAGE_ARCH', d, 1) == '0'): | ||
| 704 | return | ||
| 705 | paths = [] | ||
| 706 | for p in [ "${FILE_DIRNAME}/${PF}", "${FILE_DIRNAME}/${P}", "${FILE_DIRNAME}/${PN}", "${FILE_DIRNAME}/files", "${FILE_DIRNAME}" ]: | ||
| 707 | paths.append(bb.data.expand(os.path.join(p, mach_arch), d)) | ||
| 708 | for s in bb.data.getVar('SRC_URI', d, 1).split(): | ||
| 709 | local = bb.data.expand(bb.fetch.localpath(s, d), d) | ||
| 710 | for mp in paths: | ||
| 711 | if local.startswith(mp): | ||
| 712 | # bb.note("overriding PACKAGE_ARCH from %s to %s" % (old_arch, mach_arch)) | ||
| 713 | bb.data.setVar('PACKAGE_ARCH', mach_arch, d) | ||
| 714 | return | ||
| 715 | } | 719 | } |
| 716 | 720 | ||
| 717 | # Patch handling | 721 | # Patch handling |
