summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/utils.py')
-rw-r--r--bitbake/lib/bb/utils.py15
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
1288def edit_bblayers_conf(bblayers_conf, add, remove): 1288def 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