mirror of
https://git.yoctoproject.org/poky
synced 2026-09-20 03:49:32 +02:00
devupstream: Allow support of native class extensions
It is useful to be able to use the class with recipes using BBCLASSEXTEND for native extensions. This adds the magic required to do that. [YOCTO #11449] (From OE-Core rev: 17bab13b0f2431757d8ddd66489bb720c13a0320) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -16,8 +16,6 @@
|
|||||||
# - If the fetcher requires native tools (such as subversion-native) then
|
# - If the fetcher requires native tools (such as subversion-native) then
|
||||||
# bitbake won't be able to add them automatically.
|
# bitbake won't be able to add them automatically.
|
||||||
|
|
||||||
CLASSOVERRIDE .= ":class-devupstream"
|
|
||||||
|
|
||||||
python devupstream_virtclass_handler () {
|
python devupstream_virtclass_handler () {
|
||||||
# Do nothing if this is inherited, as it's for BBCLASSEXTEND
|
# Do nothing if this is inherited, as it's for BBCLASSEXTEND
|
||||||
if "devupstream" not in (d.getVar('BBCLASSEXTEND') or ""):
|
if "devupstream" not in (d.getVar('BBCLASSEXTEND') or ""):
|
||||||
@@ -25,8 +23,8 @@ python devupstream_virtclass_handler () {
|
|||||||
return
|
return
|
||||||
|
|
||||||
variant = d.getVar("BBEXTENDVARIANT")
|
variant = d.getVar("BBEXTENDVARIANT")
|
||||||
if variant not in ("target"):
|
if variant not in ("target", "native"):
|
||||||
bb.error("Pass the variant when using devupstream, for example devupstream:target")
|
bb.error("Unsupported variant %s. Pass the variant when using devupstream, for example devupstream:target" % variant)
|
||||||
return
|
return
|
||||||
|
|
||||||
# Develpment releases are never preferred by default
|
# Develpment releases are never preferred by default
|
||||||
@@ -34,14 +32,22 @@ python devupstream_virtclass_handler () {
|
|||||||
|
|
||||||
uri = bb.fetch2.URI(d.getVar("SRC_URI").split()[0])
|
uri = bb.fetch2.URI(d.getVar("SRC_URI").split()[0])
|
||||||
|
|
||||||
if uri.scheme == "git":
|
if uri.scheme == "git" and not d.getVar("S:class-devupstream"):
|
||||||
d.setVar("S", "${WORKDIR}/git")
|
d.setVar("S:class-devupstream", "${WORKDIR}/git")
|
||||||
|
|
||||||
# Modify the PV if the recipe hasn't already overridden it
|
# Modify the PV if the recipe hasn't already overridden it
|
||||||
pv = d.getVar("PV")
|
pv = d.getVar("PV")
|
||||||
proto_marker = "+" + uri.scheme
|
proto_marker = "+" + uri.scheme
|
||||||
if proto_marker not in pv:
|
if proto_marker not in pv and not d.getVar("PV:class-devupstream"):
|
||||||
d.setVar("PV", pv + proto_marker + "${SRCPV}")
|
d.setVar("PV", pv + proto_marker + "${SRCPV}")
|
||||||
|
|
||||||
|
if variant == "native":
|
||||||
|
pn = d.getVar("PN")
|
||||||
|
d.setVar("PN", "%s-native" % (pn))
|
||||||
|
fn = d.getVar("FILE")
|
||||||
|
bb.parse.BBHandler.inherit("native", fn, 0, d)
|
||||||
|
|
||||||
|
d.appendVar("CLASSOVERRIDE", ":class-devupstream")
|
||||||
}
|
}
|
||||||
|
|
||||||
addhandler devupstream_virtclass_handler
|
addhandler devupstream_virtclass_handler
|
||||||
|
|||||||
Reference in New Issue
Block a user