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 |