base.bbclass: Fix PACKAGECONFIG issues with native and nativesdk BBCLASSEXTEND recipes (and multilib)
This patch fixes up the issues that were being seen where BBCLASSEXTEND and PACKAGECONFIG were interacting badly. It also ensures PACKAGECONFIG interacts properly with multilib builds. Ideally some of this code will be abstracted into lib/oe/classextend.py but at this point in release more invasive changes like this are inappropriate. This patch also removed empty strings from expressions rather than passing them around as this was complicating the additional code unnecessarily. The patch was verified against the OE-Core metadata where the return values of expandFilter() were sanity checked by hand for native/nativesdk and multilib combinations. [YOCTO #2225] (From OE-Core rev: 46db11c4a789034b7040faf127ab865148bedad8) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
898bee7a4e
commit
b4acabea99
|
@ -305,9 +305,32 @@ python () {
|
|||
pkgconfigflags = d.getVarFlags("PACKAGECONFIG") or {}
|
||||
if pkgconfigflags:
|
||||
pkgconfig = (d.getVar('PACKAGECONFIG', True) or "").split()
|
||||
pn = d.getVar("PN", True)
|
||||
mlprefix = d.getVar("MLPREFIX", True)
|
||||
|
||||
def expandFilter(appends, extension, prefix):
|
||||
appends = bb.utils.explode_deps(d.expand(" ".join(appends)))
|
||||
newappends = []
|
||||
for a in appends:
|
||||
if a.endswith("-native") or a.endswith("-cross"):
|
||||
newappends.append(a)
|
||||
elif a.startswith("virtual/"):
|
||||
subs = a.split("/", 1)[1]
|
||||
newappends.append("virtual/" + prefix + subs + extension)
|
||||
else:
|
||||
newappends.append(prefix + a + extension)
|
||||
return newappends
|
||||
|
||||
def appendVar(varname, appends):
|
||||
if not appends:
|
||||
return
|
||||
if varname.find("DEPENDS") != -1:
|
||||
if pn.endswith("-nativesdk"):
|
||||
appends = expandFilter(appends, "-nativesdk", "")
|
||||
if pn.endswith("-native"):
|
||||
appends = expandFilter(appends, "-native", "")
|
||||
if mlprefix:
|
||||
appends = expandFilter(appends, "", mlprefix)
|
||||
varname = d.expand(varname)
|
||||
d.appendVar(varname, " " + " ".join(appends))
|
||||
|
||||
|
@ -324,11 +347,14 @@ python () {
|
|||
elif len(items) == 4:
|
||||
enable, disable, depend, rdepend = items
|
||||
if flag in pkgconfig:
|
||||
extradeps.append(depend)
|
||||
extrardeps.append(rdepend)
|
||||
extraconf.append(enable)
|
||||
else:
|
||||
extraconf.append(disable)
|
||||
if depend:
|
||||
extradeps.append(depend)
|
||||
if rdepend:
|
||||
extrardeps.append(rdepend)
|
||||
if enable:
|
||||
extraconf.append(enable)
|
||||
elif disable:
|
||||
extraconf.append(disable)
|
||||
appendVar('DEPENDS', extradeps)
|
||||
appendVar('RDEPENDS_${PN}', extrardeps)
|
||||
appendVar('EXTRA_OECONF', extraconf)
|
||||
|
|
Loading…
Reference in New Issue