From f223ad3d5b5c90055e50d1b1be69230f55e06336 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Mon, 9 Mar 2015 13:57:56 +0000 Subject: 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. Signed-off-by: Paul Eggleton Signed-off-by: Ross Burton --- meta/classes/externalsrc.bbclass | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 () { d.setVar('B', externalsrcbuild) else: d.setVar('B', '${WORKDIR}/${BPN}-${PV}/') - d.setVar('SRC_URI', '') + + srcuri = (d.getVar('SRC_URI', True) or '').split() + local_srcuri = [] + for uri in srcuri: + if uri.startswith('file://'): + local_srcuri.append(uri) + d.setVar('SRC_URI', ' '.join(local_srcuri)) if '{SRCPV}' in d.getVar('PV', False): # Dummy value because the default function can't be called with blank SRC_URI @@ -65,7 +71,13 @@ python () { if setvalue: d.setVarFlag(task, 'cleandirs', ' '.join(cleandirs)) + fetch_tasks = ['do_fetch', 'do_unpack'] + # If we deltask do_patch, there's no dependency to ensure do_unpack gets run, so add one + d.appendVarFlag('do_configure', 'deps', ['do_unpack']) + for task in d.getVar("SRCTREECOVEREDTASKS", True).split(): + if local_srcuri and task in fetch_tasks: + continue bb.build.deltask(task, d) d.prependVarFlag('do_compile', 'prefuncs', "externalsrc_compile_prefunc ") -- cgit 1.2.3-korg