diff options
Diffstat (limited to 'bitbake/lib/bb/ui')
-rw-r--r-- | bitbake/lib/bb/ui/buildinfohelper.py | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py index 43a1411fa0..63c779e81f 100644 --- a/bitbake/lib/bb/ui/buildinfohelper.py +++ b/bitbake/lib/bb/ui/buildinfohelper.py | |||
@@ -965,9 +965,10 @@ class BuildInfoHelper(object): | |||
965 | return task_information | 965 | return task_information |
966 | 966 | ||
967 | def _get_layer_version_for_dependency(self, pathRE): | 967 | def _get_layer_version_for_dependency(self, pathRE): |
968 | """ Returns the layer in the toaster db that has a full regex match to the pathRE. | 968 | """ Returns the layer in the toaster db that has a full regex |
969 | pathRE - the layer path passed as a regex in the event. It is created in | 969 | match to the pathRE. pathRE - the layer path passed as a regex in the |
970 | cooker.py as a collection for the layer priorities. | 970 | event. It is created in cooker.py as a collection for the layer |
971 | priorities. | ||
971 | """ | 972 | """ |
972 | self._ensure_build() | 973 | self._ensure_build() |
973 | 974 | ||
@@ -975,19 +976,26 @@ class BuildInfoHelper(object): | |||
975 | assert isinstance(layer_version, Layer_Version) | 976 | assert isinstance(layer_version, Layer_Version) |
976 | return len(layer_version.local_path) | 977 | return len(layer_version.local_path) |
977 | 978 | ||
978 | # we don't care if we match the trailing slashes | 979 | # Our paths don't append a trailing slash |
979 | p = re.compile(re.sub("/[^/]*?$","",pathRE)) | 980 | if pathRE.endswith("/"): |
980 | # Heuristics: we always match recipe to the deepest layer path in the discovered layers | 981 | pathRE = pathRE[:-1] |
981 | for lvo in sorted(self.orm_wrapper.layer_version_objects, reverse=True, key=_sort_longest_path): | 982 | |
982 | if p.fullmatch(lvo.local_path): | 983 | p = re.compile(pathRE) |
984 | # Heuristics: we always match recipe to the deepest layer path in | ||
985 | # the discovered layers | ||
986 | for lvo in sorted(self.orm_wrapper.layer_version_objects, | ||
987 | reverse=True, key=_sort_longest_path): | ||
988 | if p.fullmatch(os.path.abspath(lvo.local_path)): | ||
983 | return lvo | 989 | return lvo |
984 | if lvo.layer.local_source_dir: | 990 | if lvo.layer.local_source_dir: |
985 | if p.fullmatch(lvo.layer.local_source_dir): | 991 | if p.fullmatch(os.path.abspath(lvo.layer.local_source_dir)): |
986 | return lvo | 992 | return lvo |
987 | #if we get here, we didn't read layers correctly; dump whatever information we have on the error log | ||
988 | logger.warning("Could not match layer dependency for path %s : %s", path, self.orm_wrapper.layer_version_objects) | ||
989 | |||
990 | 993 | ||
994 | # if we get here, we didn't read layers correctly; | ||
995 | # dump whatever information we have on the error log | ||
996 | logger.warning("Could not match layer dependency for path %s : %s", | ||
997 | pathRE, | ||
998 | self.orm_wrapper.layer_version_objects) | ||
991 | 999 | ||
992 | def _get_layer_version_for_path(self, path): | 1000 | def _get_layer_version_for_path(self, path): |
993 | self._ensure_build() | 1001 | self._ensure_build() |