Add a hack to avoid the req that all vars using LAYERDIR be immediately expanded
See the comment in the code for details. (Bitbake rev: 849dbd63244cbc4eaca0f1beedbb67baca024629) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
parent
dc39ebe91e
commit
3238125138
|
@ -523,11 +523,25 @@ class BBCooker:
|
|||
|
||||
layers = (bb.data.getVar('BBLAYERS', data, True) or "").split()
|
||||
|
||||
data = bb.data.createCopy(data)
|
||||
for layer in layers:
|
||||
bb.msg.debug(2, bb.msg.domain.Parsing, "Adding layer %s" % layer)
|
||||
bb.data.setVar('LAYERDIR', layer, data)
|
||||
data = bb.parse.handle(os.path.join(layer, "conf", "layer.conf"), data)
|
||||
|
||||
# XXX: Hack, relies on the local keys of the datasmart
|
||||
# instance being stored in the 'dict' attribute and makes
|
||||
# assumptions about how variable expansion works, but
|
||||
# there's no better way to force an expansion of a single
|
||||
# variable across the datastore today, and this at least
|
||||
# lets us reference LAYERDIR without having to immediately
|
||||
# eval all our variables that use it.
|
||||
for key in data.dict:
|
||||
if key != "_data":
|
||||
value = data.getVar(key, False)
|
||||
if "${LAYERDIR}" in value:
|
||||
data.setVar(key, value.replace("${LAYERDIR}", layer))
|
||||
|
||||
bb.data.delVar('LAYERDIR', data)
|
||||
|
||||
if not data.getVar("BBPATH", True):
|
||||
|
|
Loading…
Reference in New Issue