diff options
Diffstat (limited to 'scripts/lib/devtool/build_image.py')
| -rw-r--r-- | scripts/lib/devtool/build_image.py | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/scripts/lib/devtool/build_image.py b/scripts/lib/devtool/build_image.py index e51d766474..1e5d09b39e 100644 --- a/scripts/lib/devtool/build_image.py +++ b/scripts/lib/devtool/build_image.py | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | """Devtool plugin containing the build-image subcommand.""" | 18 | """Devtool plugin containing the build-image subcommand.""" |
| 19 | 19 | ||
| 20 | import os | 20 | import os |
| 21 | import errno | ||
| 21 | import logging | 22 | import logging |
| 22 | 23 | ||
| 23 | from bb.process import ExecutionError | 24 | from bb.process import ExecutionError |
| @@ -72,13 +73,17 @@ def build_image(args, config, basepath, workspace): | |||
| 72 | return result | 73 | return result |
| 73 | 74 | ||
| 74 | def build_image_task(config, basepath, workspace, image, add_packages=None, task=None, extra_append=None): | 75 | def build_image_task(config, basepath, workspace, image, add_packages=None, task=None, extra_append=None): |
| 75 | appendfile = os.path.join(config.workspace_path, 'appends', | ||
| 76 | '%s.bbappend' % image) | ||
| 77 | |||
| 78 | # remove <image>.bbappend to make sure setup_tinfoil doesn't | 76 | # remove <image>.bbappend to make sure setup_tinfoil doesn't |
| 79 | # break because of it | 77 | # break because of it |
| 80 | if os.path.isfile(appendfile): | 78 | target_basename = config.get('SDK', 'target_basename', '') |
| 81 | os.unlink(appendfile) | 79 | if target_basename: |
| 80 | appendfile = os.path.join(config.workspace_path, 'appends', | ||
| 81 | '%s.bbappend' % target_basename) | ||
| 82 | try: | ||
| 83 | os.unlink(appendfile) | ||
| 84 | except OSError as exc: | ||
| 85 | if exc.errno != errno.ENOENT: | ||
| 86 | raise | ||
| 82 | 87 | ||
| 83 | tinfoil = setup_tinfoil(basepath=basepath) | 88 | tinfoil = setup_tinfoil(basepath=basepath) |
| 84 | rd = parse_recipe(config, tinfoil, image, True) | 89 | rd = parse_recipe(config, tinfoil, image, True) |
| @@ -88,6 +93,15 @@ def build_image_task(config, basepath, workspace, image, add_packages=None, task | |||
| 88 | if not bb.data.inherits_class('image', rd): | 93 | if not bb.data.inherits_class('image', rd): |
| 89 | raise TargetNotImageError() | 94 | raise TargetNotImageError() |
| 90 | 95 | ||
| 96 | # Get the actual filename used and strip the .bb and full path | ||
| 97 | target_basename = rd.getVar('FILE', True) | ||
| 98 | target_basename = os.path.splitext(os.path.basename(target_basename))[0] | ||
| 99 | config.set('SDK', 'target_basename', target_basename) | ||
| 100 | config.write() | ||
| 101 | |||
| 102 | appendfile = os.path.join(config.workspace_path, 'appends', | ||
| 103 | '%s.bbappend' % target_basename) | ||
| 104 | |||
| 91 | outputdir = None | 105 | outputdir = None |
| 92 | try: | 106 | try: |
| 93 | if workspace or add_packages: | 107 | if workspace or add_packages: |
