scripts/yocto-compat-layer.py: Handle layer dependencies when test
If some layer depends on other tries to find layer dependency, if the layer dependency isn't found avoid to test the layer and notice the user. (From OE-Core rev: 1e7cf9bb71521f1632dd2e6b01fe7fcc95732983) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
4703aa2b3b
commit
f57eac5dc9
|
@ -132,10 +132,37 @@ def detect_layers(layer_directories, no_auto):
|
|||
|
||||
return layers
|
||||
|
||||
def add_layer(bblayersconf, layer):
|
||||
def _find_layer_depends(depend, layers):
|
||||
for layer in layers:
|
||||
for collection in layer['collections']:
|
||||
if depend == collection:
|
||||
return layer
|
||||
return None
|
||||
|
||||
def add_layer(bblayersconf, layer, layers, logger):
|
||||
logger.info('Adding layer %s' % layer['name'])
|
||||
|
||||
for collection in layer['collections']:
|
||||
for depend in layer['collections'][collection]['depends'].split():
|
||||
# core (oe-core) is suppose to be provided
|
||||
if depend == 'core':
|
||||
continue
|
||||
|
||||
layer_depend = _find_layer_depends(depend, layers)
|
||||
if not layer_depend:
|
||||
logger.error('Layer %s depends on %s and isn\'t found.' % \
|
||||
(layer['name'], depend))
|
||||
return False
|
||||
|
||||
logger.info('Adding layer dependency %s' % layer_depend['name'])
|
||||
with open(bblayersconf, 'a+') as f:
|
||||
f.write("\nBBLAYERS += \"%s\"\n" % layer_depend['path'])
|
||||
|
||||
with open(bblayersconf, 'a+') as f:
|
||||
f.write("\nBBLAYERS += \"%s\"\n" % layer['path'])
|
||||
|
||||
return True
|
||||
|
||||
def get_signatures(builddir, failsafe=False):
|
||||
import subprocess
|
||||
import re
|
||||
|
|
|
@ -116,6 +116,7 @@ def main():
|
|||
td['sigs'] = get_signatures(td['builddir'])
|
||||
logger.info('')
|
||||
|
||||
layers_tested = 0
|
||||
for layer in layers:
|
||||
if layer['type'] == LayerType.ERROR_NO_LAYER_CONF or \
|
||||
layer['type'] == LayerType.ERROR_BSP_DISTRO:
|
||||
|
@ -123,16 +124,20 @@ def main():
|
|||
|
||||
shutil.copyfile(bblayersconf + '.backup', bblayersconf)
|
||||
|
||||
add_layer(bblayersconf, layer)
|
||||
if not add_layer(bblayersconf, layer, layers, logger):
|
||||
continue
|
||||
|
||||
result = test_layer_compatibility(td, layer)
|
||||
results[layer['name']] = result
|
||||
layers_tested = layers_tested + 1
|
||||
|
||||
logger.info('')
|
||||
logger.info('Summary of results:')
|
||||
logger.info('')
|
||||
for layer_name in results:
|
||||
logger.info('%s ... %s' % (layer_name, 'PASS' if \
|
||||
results[layer_name].wasSuccessful() else 'FAIL'))
|
||||
if layers_tested:
|
||||
logger.info('')
|
||||
logger.info('Summary of results:')
|
||||
logger.info('')
|
||||
for layer_name in results:
|
||||
logger.info('%s ... %s' % (layer_name, 'PASS' if \
|
||||
results[layer_name].wasSuccessful() else 'FAIL'))
|
||||
|
||||
cleanup_bblayers(None, None)
|
||||
|
||||
|
|
Loading…
Reference in New Issue