summaryrefslogtreecommitdiffstats
path: root/meta/classes/externalsrc.bbclass
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2015-03-09 13:57:56 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-03-20 11:27:46 +0000
commita5047717bd11d332fc9f4320beaa26719de1793c (patch)
tree0a54a176531a59a7f7453502a7d4912eb27d45a5 /meta/classes/externalsrc.bbclass
parent3d7777f0613ef45bce39c8448ed6664e9280ff0d (diff)
downloadpoky-a5047717bd11d332fc9f4320beaa26719de1793c.tar.gz
classes/externalsrc: fix for recipes that fetch local files
If SRC_URI contains local files (file:// references) these will almost certainly be required at some point during the build process, so we need to actually fetch these to ${WORKDIR} as we would normally. (From OE-Core rev: f223ad3d5b5c90055e50d1b1be69230f55e06336) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/externalsrc.bbclass')
-rw-r--r--meta/classes/externalsrc.bbclass14
1 files changed, 13 insertions, 1 deletions
diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass
index 25f0be96a5..75bdb7a14d 100644
--- a/meta/classes/externalsrc.bbclass
+++ b/meta/classes/externalsrc.bbclass
@@ -35,7 +35,13 @@ python () {
35 d.setVar('B', externalsrcbuild) 35 d.setVar('B', externalsrcbuild)
36 else: 36 else:
37 d.setVar('B', '${WORKDIR}/${BPN}-${PV}/') 37 d.setVar('B', '${WORKDIR}/${BPN}-${PV}/')
38 d.setVar('SRC_URI', '') 38
39 srcuri = (d.getVar('SRC_URI', True) or '').split()
40 local_srcuri = []
41 for uri in srcuri:
42 if uri.startswith('file://'):
43 local_srcuri.append(uri)
44 d.setVar('SRC_URI', ' '.join(local_srcuri))
39 45
40 if '{SRCPV}' in d.getVar('PV', False): 46 if '{SRCPV}' in d.getVar('PV', False):
41 # Dummy value because the default function can't be called with blank SRC_URI 47 # Dummy value because the default function can't be called with blank SRC_URI
@@ -65,7 +71,13 @@ python () {
65 if setvalue: 71 if setvalue:
66 d.setVarFlag(task, 'cleandirs', ' '.join(cleandirs)) 72 d.setVarFlag(task, 'cleandirs', ' '.join(cleandirs))
67 73
74 fetch_tasks = ['do_fetch', 'do_unpack']
75 # If we deltask do_patch, there's no dependency to ensure do_unpack gets run, so add one
76 d.appendVarFlag('do_configure', 'deps', ['do_unpack'])
77
68 for task in d.getVar("SRCTREECOVEREDTASKS", True).split(): 78 for task in d.getVar("SRCTREECOVEREDTASKS", True).split():
79 if local_srcuri and task in fetch_tasks:
80 continue
69 bb.build.deltask(task, d) 81 bb.build.deltask(task, d)
70 82
71 d.prependVarFlag('do_compile', 'prefuncs', "externalsrc_compile_prefunc ") 83 d.prependVarFlag('do_compile', 'prefuncs', "externalsrc_compile_prefunc ")