diff options
| -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] |
