[oe] [PATCH] patch.bbclass: conditional patch-tool dependency
Bernhard Reutner-Fischer
rep.dot.nop at gmail.com
Mon Jan 3 19:54:44 UTC 2011
On Tue, Dec 21, 2010 at 06:19:59PM +0100, Bernhard Reutner-Fischer wrote:
>only depend do_patch on patch-tool if recipe references any patch
ping?
>
>Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
>---
> classes/patch.bbclass | 21 +++++++++++++++++++--
> 1 files changed, 19 insertions(+), 2 deletions(-)
>
>diff --git a/classes/patch.bbclass b/classes/patch.bbclass
>index 7629e9a..1cfe24c 100644
>--- a/classes/patch.bbclass
>+++ b/classes/patch.bbclass
>@@ -38,7 +38,7 @@ python patch_do_patch() {
> src_uri = d.getVar("SRC_URI", True).split()
> srcurldata = bb.fetch.init(src_uri, d, True)
> workdir = bb.data.getVar('WORKDIR', d, 1)
>- for url in d.getVar("SRC_URI", True).split():
>+ for url in src_uri:
> urldata = srcurldata[url]
>
> local = urldata.localpath
>@@ -120,8 +120,25 @@ python patch_do_patch() {
> bb.fatal(str(exc))
> }
>
>+def patch_deps(d):
>+ import oe.unpack
>+
>+ src_uri = d.getVar("SRC_URI", True).split()
>+ srcurldata = bb.fetch.init(src_uri, d, True)
>+ for url in src_uri:
>+ urldata = srcurldata[url]
>+ local = urldata.localpath
>+ if local:
>+ base, ext = os.path.splitext(os.path.basename(local))
>+ if ext in ('.gz', '.bz2', '.Z', '.xz'):
>+ local = base
>+ if oe.unpack.is_patch(local, urldata.parm):
>+ return "${PATCHDEPENDENCY}"
>+ return ""
>+
>+
> addtask patch after do_unpack
> do_patch[dirs] = "${WORKDIR}"
>-do_patch[depends] = "${PATCHDEPENDENCY}"
>+do_patch[depends] = "${@patch_deps(d)}"
>
> EXPORT_FUNCTIONS do_patch
>--
>1.7.2.3
>
More information about the Openembedded-devel
mailing list