diff options
Diffstat (limited to 'bitbake/lib/bb/utils.py')
-rw-r--r-- | bitbake/lib/bb/utils.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index 378e699e0c..9903183213 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py | |||
@@ -1285,7 +1285,7 @@ def edit_metadata_file(meta_file, variables, varfunc): | |||
1285 | return updated | 1285 | return updated |
1286 | 1286 | ||
1287 | 1287 | ||
1288 | def edit_bblayers_conf(bblayers_conf, add, remove): | 1288 | def edit_bblayers_conf(bblayers_conf, add, remove, edit_cb=None): |
1289 | """Edit bblayers.conf, adding and/or removing layers | 1289 | """Edit bblayers.conf, adding and/or removing layers |
1290 | Parameters: | 1290 | Parameters: |
1291 | bblayers_conf: path to bblayers.conf file to edit | 1291 | bblayers_conf: path to bblayers.conf file to edit |
@@ -1293,6 +1293,8 @@ def edit_bblayers_conf(bblayers_conf, add, remove): | |||
1293 | list to add nothing | 1293 | list to add nothing |
1294 | remove: layer path (or list of layer paths) to remove; None or | 1294 | remove: layer path (or list of layer paths) to remove; None or |
1295 | empty list to remove nothing | 1295 | empty list to remove nothing |
1296 | edit_cb: optional callback function that will be called after | ||
1297 | processing adds/removes once per existing entry. | ||
1296 | Returns a tuple: | 1298 | Returns a tuple: |
1297 | notadded: list of layers specified to be added but weren't | 1299 | notadded: list of layers specified to be added but weren't |
1298 | (because they were already in the list) | 1300 | (because they were already in the list) |
@@ -1356,6 +1358,17 @@ def edit_bblayers_conf(bblayers_conf, add, remove): | |||
1356 | bblayers.append(addlayer) | 1358 | bblayers.append(addlayer) |
1357 | del addlayers[:] | 1359 | del addlayers[:] |
1358 | 1360 | ||
1361 | if edit_cb: | ||
1362 | newlist = [] | ||
1363 | for layer in bblayers: | ||
1364 | res = edit_cb(layer, canonicalise_path(layer)) | ||
1365 | if res != layer: | ||
1366 | newlist.append(res) | ||
1367 | updated = True | ||
1368 | else: | ||
1369 | newlist.append(layer) | ||
1370 | bblayers = newlist | ||
1371 | |||
1359 | if updated: | 1372 | if updated: |
1360 | if op == '+=' and not bblayers: | 1373 | if op == '+=' and not bblayers: |
1361 | bblayers = None | 1374 | bblayers = None |