diff options
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/bb/utils.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index c97f3ef81f..1681efd7e5 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py | |||
@@ -1097,3 +1097,19 @@ def edit_bblayers_conf(bblayers_conf, add, remove): | |||
1097 | 1097 | ||
1098 | return (notadded, notremoved) | 1098 | return (notadded, notremoved) |
1099 | 1099 | ||
1100 | |||
1101 | def get_file_layer(filename, d): | ||
1102 | """Determine the collection (as defined by a layer's layer.conf file) containing the specified file""" | ||
1103 | collections = (d.getVar('BBFILE_COLLECTIONS', True) or '').split() | ||
1104 | collection_res = {} | ||
1105 | for collection in collections: | ||
1106 | collection_res[collection] = d.getVar('BBFILE_PATTERN_%s' % collection, True) or '' | ||
1107 | |||
1108 | # Use longest path so we handle nested layers | ||
1109 | matchlen = 0 | ||
1110 | match = None | ||
1111 | for collection, regex in collection_res.iteritems(): | ||
1112 | if len(regex) > matchlen and re.match(regex, filename): | ||
1113 | matchlen = len(regex) | ||
1114 | match = collection | ||
1115 | return match | ||