diff options
Diffstat (limited to 'meta')
| -rw-r--r-- | meta/classes/externalsrc.bbclass | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass index b7140a321d..5c65d2b742 100644 --- a/meta/classes/externalsrc.bbclass +++ b/meta/classes/externalsrc.bbclass | |||
| @@ -29,6 +29,23 @@ EXTERNALSRC_SYMLINKS ?= "oe-workdir:${WORKDIR} oe-logs:${T}" | |||
| 29 | 29 | ||
| 30 | python () { | 30 | python () { |
| 31 | externalsrc = d.getVar('EXTERNALSRC', True) | 31 | externalsrc = d.getVar('EXTERNALSRC', True) |
| 32 | |||
| 33 | # If this is the base recipe and EXTERNALSRC is set for it or any of its | ||
| 34 | # derivatives, then enable BB_DONT_CACHE to force the recipe to always be | ||
| 35 | # re-parsed so that the file-checksums function for do_compile is run every | ||
| 36 | # time. | ||
| 37 | bpn = d.getVar('BPN', True) | ||
| 38 | if bpn == d.getVar('PN', True): | ||
| 39 | classextend = (d.getVar('BBCLASSEXTEND', True) or '').split() | ||
| 40 | if (externalsrc or | ||
| 41 | ('native' in classextend and | ||
| 42 | d.getVar('EXTERNALSRC_pn-%s-native' % bpn, True)) or | ||
| 43 | ('nativesdk' in classextend and | ||
| 44 | d.getVar('EXTERNALSRC_pn-nativesdk-%s' % bpn, True)) or | ||
| 45 | ('cross' in classextend and | ||
| 46 | d.getVar('EXTERNALSRC_pn-%s-cross' % bpn, True))): | ||
| 47 | d.setVar('BB_DONT_CACHE', '1') | ||
| 48 | |||
| 32 | if externalsrc: | 49 | if externalsrc: |
| 33 | d.setVar('S', externalsrc) | 50 | d.setVar('S', externalsrc) |
| 34 | externalsrcbuild = d.getVar('EXTERNALSRC_BUILD', True) | 51 | externalsrcbuild = d.getVar('EXTERNALSRC_BUILD', True) |
| @@ -85,9 +102,6 @@ python () { | |||
| 85 | d.prependVarFlag('do_compile', 'prefuncs', "externalsrc_compile_prefunc ") | 102 | d.prependVarFlag('do_compile', 'prefuncs', "externalsrc_compile_prefunc ") |
| 86 | d.prependVarFlag('do_configure', 'prefuncs', "externalsrc_configure_prefunc ") | 103 | d.prependVarFlag('do_configure', 'prefuncs', "externalsrc_configure_prefunc ") |
| 87 | 104 | ||
| 88 | # Force the recipe to be always re-parsed so that the file_checksums | ||
| 89 | # function is run every time | ||
| 90 | d.setVar('BB_DONT_CACHE', '1') | ||
| 91 | d.setVarFlag('do_compile', 'file-checksums', '${@srctree_hash_files(d)}') | 105 | d.setVarFlag('do_compile', 'file-checksums', '${@srctree_hash_files(d)}') |
| 92 | 106 | ||
| 93 | # We don't want the workdir to go away | 107 | # We don't want the workdir to go away |
