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: |