From 25dc5ac42c9da53c01416e7fdcc819d729281133 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Thu, 7 Jan 2016 00:15:55 +1300 Subject: devtool: build: support using BBCLASSEXTENDed names It's logical that you would want to build BBCLASSEXTENDed items separately through devtool build, so simply allow that - we're just passing the name verbatim to bitbake, so all it means is adjusting the validation. Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- scripts/lib/devtool/__init__.py | 26 +++++++++++++++++++++----- scripts/lib/devtool/build.py | 4 ++-- 2 files changed, 23 insertions(+), 7 deletions(-) (limited to 'scripts/lib/devtool') diff --git a/scripts/lib/devtool/__init__.py b/scripts/lib/devtool/__init__.py index 253e4d5e35..0405d22874 100644 --- a/scripts/lib/devtool/__init__.py +++ b/scripts/lib/devtool/__init__.py @@ -146,19 +146,35 @@ def parse_recipe(config, tinfoil, pn, appends): return oe.recipeutils.parse_recipe(recipefile, append_files, tinfoil.config_data) -def check_workspace_recipe(workspace, pn, checksrc=True): +def check_workspace_recipe(workspace, pn, checksrc=True, bbclassextend=False): """ Check that a recipe is in the workspace and (optionally) that source is present. """ - if not pn in workspace: + + workspacepn = pn + + for recipe, value in workspace.iteritems(): + if recipe == pn: + break + if bbclassextend: + recipefile = value['recipefile'] + if recipefile: + targets = get_bbclassextend_targets(recipefile, recipe) + if pn in targets: + workspacepn = recipe + break + else: raise DevtoolError("No recipe named '%s' in your workspace" % pn) + if checksrc: - srctree = workspace[pn]['srctree'] + srctree = workspace[workspacepn]['srctree'] if not os.path.exists(srctree): - raise DevtoolError("Source tree %s for recipe %s does not exist" % (srctree, pn)) + raise DevtoolError("Source tree %s for recipe %s does not exist" % (srctree, workspacepn)) if not os.listdir(srctree): - raise DevtoolError("Source tree %s for recipe %s is empty" % (srctree, pn)) + raise DevtoolError("Source tree %s for recipe %s is empty" % (srctree, workspacepn)) + + return workspacepn def use_external_build(same_dir, no_same_dir, d): """ diff --git a/scripts/lib/devtool/build.py b/scripts/lib/devtool/build.py index a9a077882c..c4c0c9f50f 100644 --- a/scripts/lib/devtool/build.py +++ b/scripts/lib/devtool/build.py @@ -51,11 +51,11 @@ def _get_build_task(config): def build(args, config, basepath, workspace): """Entry point for the devtool 'build' subcommand""" - check_workspace_recipe(workspace, args.recipename) + workspacepn = check_workspace_recipe(workspace, args.recipename, bbclassextend=True) build_task = _get_build_task(config) - bbappend = workspace[args.recipename]['bbappend'] + bbappend = workspace[workspacepn]['bbappend'] if args.disable_parallel_make: logger.info("Disabling 'make' parallelism") _set_file_values(bbappend, {'PARALLEL_MAKE': ''}) -- cgit 1.2.3-korg