diff options
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r-- | bitbake/lib/bb/ui/buildinfohelper.py | 47 |
1 files changed, 9 insertions, 38 deletions
diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py index 5ea9284a39..1d41bba408 100644 --- a/bitbake/lib/bb/ui/buildinfohelper.py +++ b/bitbake/lib/bb/ui/buildinfohelper.py | |||
@@ -815,44 +815,15 @@ class BuildInfoHelper(object): | |||
815 | assert path.startswith("/") | 815 | assert path.startswith("/") |
816 | assert 'build' in self.internal_state | 816 | assert 'build' in self.internal_state |
817 | 817 | ||
818 | if self.brbe is None: | 818 | def _slkey_interactive(layer_version): |
819 | def _slkey_interactive(layer_version): | 819 | assert isinstance(layer_version, Layer_Version) |
820 | assert isinstance(layer_version, Layer_Version) | 820 | return len(layer_version.local_path) |
821 | return len(layer_version.local_path) | 821 | |
822 | 822 | # Heuristics: we always match recipe to the deepest layer path in the discovered layers | |
823 | # Heuristics: we always match recipe to the deepest layer path in the discovered layers | 823 | for lvo in sorted(self.orm_wrapper.layer_version_objects, reverse=True, key=_slkey_interactive): |
824 | for lvo in sorted(self.orm_wrapper.layer_version_objects, reverse=True, key=_slkey_interactive): | 824 | # we can match to the recipe file path |
825 | # we can match to the recipe file path | 825 | if path.startswith(lvo.local_path): |
826 | if path.startswith(lvo.local_path): | 826 | return lvo |
827 | return lvo | ||
828 | |||
829 | else: | ||
830 | br_id, be_id = self.brbe.split(":") | ||
831 | from bldcontrol.bbcontroller import getBuildEnvironmentController | ||
832 | bc = getBuildEnvironmentController(pk = be_id) | ||
833 | |||
834 | def _slkey_managed(layer_version): | ||
835 | return len(bc.getGitCloneDirectory(layer_version.giturl, layer_version.commit) + layer_version.dirpath) | ||
836 | |||
837 | # Heuristics: we match the path to where the layers have been checked out | ||
838 | for brl in sorted(BuildRequest.objects.get(pk = br_id).brlayer_set.all(), reverse = True, key = _slkey_managed): | ||
839 | localdirname = os.path.join(bc.getGitCloneDirectory(brl.giturl, brl.commit), brl.dirpath) | ||
840 | # we get a relative path, unless running in HEAD mode where the path is absolute | ||
841 | if not localdirname.startswith("/"): | ||
842 | localdirname = os.path.join(bc.be.sourcedir, localdirname) | ||
843 | if path.startswith(localdirname): | ||
844 | # If the build request came from toaster this field | ||
845 | # should contain the information from the layer_version | ||
846 | # That created this build request. | ||
847 | if brl.layer_version: | ||
848 | return brl.layer_version | ||
849 | |||
850 | #logger.warn("-- managed: matched path %s with layer %s " % (path, localdirname)) | ||
851 | # we matched the BRLayer, but we need the layer_version that generated this br | ||
852 | |||
853 | for lvo in self.orm_wrapper.layer_version_objects: | ||
854 | if brl.name == lvo.layer.name: | ||
855 | return lvo | ||
856 | 827 | ||
857 | #if we get here, we didn't read layers correctly; dump whatever information we have on the error log | 828 | #if we get here, we didn't read layers correctly; dump whatever information we have on the error log |
858 | logger.warn("Could not match layer version for recipe path %s : %s", path, self.orm_wrapper.layer_version_objects) | 829 | logger.warn("Could not match layer version for recipe path %s : %s", path, self.orm_wrapper.layer_version_objects) |