]> code.ossystems Code Review - openembedded-core.git/commitdiff
yocto-compat-layer.py: Add --dependency argument
authorMark Hatle <mark.hatle@windriver.com>
Fri, 31 Mar 2017 02:30:27 +0000 (21:30 -0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 5 Apr 2017 11:36:44 +0000 (12:36 +0100)
When processing a large number of items, there are times that it would be
nice to be able to pass in a series of layers that can be used as dependencies
for the layer that is being scanned.  This avoids the significant overhead
of processing all of the layers to compatibility.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
scripts/yocto-compat-layer.py

index d13d8c039f01bc065a880e7ae3afc3a929102c39..f8a1ac7468a35168fbcc147ce7c59ca0ccf0b1c7 100755 (executable)
@@ -47,6 +47,8 @@ def main():
             help='Layer to test compatibility with Yocto Project')
     parser.add_argument('-o', '--output-log',
             help='File to output log (optional)', action='store')
+    parser.add_argument('--dependency', nargs="+",
+            help='Layers to process for dependencies', action='store')
     parser.add_argument('-n', '--no-auto', help='Disable auto layer discovery',
             action='store_true')
     parser.add_argument('-d', '--debug', help='Enable debug output',
@@ -80,6 +82,11 @@ def main():
     if not layers:
         logger.error("Fail to detect layers")
         return 1
+    if args.dependency:
+        dep_layers = detect_layers(args.dependency, args.no_auto)
+        dep_layers = dep_layers + layers
+    else:
+        dep_layers = layers
 
     logger.info("Detected layers:")
     for layer in layers:
@@ -125,7 +132,8 @@ def main():
 
         shutil.copyfile(bblayersconf + '.backup', bblayersconf)
 
-        if not add_layer(bblayersconf, layer, layers, logger):
+        if not add_layer(bblayersconf, layer, dep_layers, logger):
+            logger.info('Skipping %s due to missing dependencies.' % layer['name'])
             results[layer['name']] = None
             results_status[layer['name']] = 'SKIPPED (Missing dependencies)'
             layers_tested = layers_tested + 1