diff options
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/ui/buildinfohelper.py | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py index 286fb6a74b..2fc1a43c40 100644 --- a/bitbake/lib/bb/ui/buildinfohelper.py +++ b/bitbake/lib/bb/ui/buildinfohelper.py | |||
@@ -162,8 +162,6 @@ class ORMWrapper(object): | |||
162 | build.bitbake_version=build_info['bitbake_version'] | 162 | build.bitbake_version=build_info['bitbake_version'] |
163 | build.save() | 163 | build.save() |
164 | 164 | ||
165 | Target.objects.filter(build = build).delete() | ||
166 | |||
167 | else: | 165 | else: |
168 | build = Build.objects.create( | 166 | build = Build.objects.create( |
169 | project = prj, | 167 | project = prj, |
@@ -184,18 +182,26 @@ class ORMWrapper(object): | |||
184 | 182 | ||
185 | return build | 183 | return build |
186 | 184 | ||
187 | def create_target_objects(self, target_info): | 185 | @staticmethod |
188 | assert 'build' in target_info | 186 | def get_or_create_targets(target_info): |
189 | assert 'targets' in target_info | 187 | result = [] |
190 | 188 | for target in target_info['targets']: | |
191 | targets = [] | 189 | task = '' |
192 | for tgt_name in target_info['targets']: | 190 | if ':' in target: |
193 | tgt_object = Target.objects.create( build = target_info['build'], | 191 | target, task = target.split(':', 1) |
194 | target = tgt_name, | 192 | if task.startswith('do_'): |
195 | is_image = False, | 193 | task = task[3:] |
196 | ) | 194 | if task == 'build': |
197 | targets.append(tgt_object) | 195 | task = '' |
198 | return targets | 196 | obj, created = Target.objects.get_or_create(build=target_info['build'], |
197 | target=target) | ||
198 | if created: | ||
199 | obj.is_image = False | ||
200 | if task: | ||
201 | obj.task = task | ||
202 | obj.save() | ||
203 | result.append(obj) | ||
204 | return result | ||
199 | 205 | ||
200 | def update_build_object(self, build, errors, warnings, taskfailures): | 206 | def update_build_object(self, build, errors, warnings, taskfailures): |
201 | assert isinstance(build,Build) | 207 | assert isinstance(build,Build) |
@@ -950,7 +956,7 @@ class BuildInfoHelper(object): | |||
950 | target_information['targets'] = event._pkgs | 956 | target_information['targets'] = event._pkgs |
951 | target_information['build'] = build_obj | 957 | target_information['build'] = build_obj |
952 | 958 | ||
953 | self.internal_state['targets'] = self.orm_wrapper.create_target_objects(target_information) | 959 | self.internal_state['targets'] = self.orm_wrapper.get_or_create_targets(target_information) |
954 | 960 | ||
955 | # Save build configuration | 961 | # Save build configuration |
956 | data = self.server.runCommand(["getAllKeysWithFlags", ["doc", "func"]])[0] | 962 | data = self.server.runCommand(["getAllKeysWithFlags", ["doc", "func"]])[0] |