copy_buildsystem: allow more layer paths

Layers could be located anywhere. The eSDK should work with them even if
they are not located in TOPDIR or in the same parent directory as
COREBASE.

For layers located in the same parent directory as COREBASE this preserves
the intent from the previous
  copy_buildsystem: include layer tree during build structure creation
commit.

Related OE-Core rev: 5a59a6997f41e606d088e3e86812de56f72f543b

(From OE-Core rev: 16d330d42e03085769eddb1b60ba1df7228baf36)

Signed-off-by: Daniel Wagenknecht <dwagenknecht@emlix.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Daniel Wagenknecht
2022-03-02 20:05:55 +01:00
committed by Richard Purdie
parent 2ea66dc0f6
commit 4c298459ab

View File

@@ -45,9 +45,6 @@ class BuildSystem(object):
corebase = os.path.abspath(self.d.getVar('COREBASE'))
layers.append(corebase)
# Get relationship between TOPDIR and COREBASE
# Layers should respect it
corebase_relative = os.path.dirname(os.path.relpath(os.path.abspath(self.d.getVar('TOPDIR')), corebase))
# The bitbake build system uses the meta-skeleton layer as a layout
# for common recipies, e.g: the recipetool script to create kernel recipies
# Add the meta-skeleton layer to be included as part of the eSDK installation
@@ -100,11 +97,10 @@ class BuildSystem(object):
layerdestpath = destdir
if corebase == os.path.dirname(layer):
layerdestpath += '/' + os.path.basename(corebase)
else:
layer_relative = os.path.relpath(layer, corebase)
if os.path.dirname(layer_relative) == corebase_relative:
layer_relative = os.path.dirname(corebase_relative) + '/' + layernewname
layer_relative = os.path.basename(corebase) + '/' + layer_relative
# If the layer is located somewhere under the same parent directory
# as corebase we keep the layer structure.
elif os.path.commonpath([layer, corebase]) == os.path.dirname(corebase):
layer_relative = os.path.relpath(layer, os.path.dirname(corebase))
if os.path.dirname(layer_relative) != layernewname:
layerdestpath += '/' + os.path.dirname(layer_relative)