summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bblayers
diff options
context:
space:
mode:
authorJoshua Watt <JPEWhacker@gmail.com>2020-06-05 22:15:29 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-06-10 12:30:01 +0100
commitb9fdb6a4261754459a01f9689010a38922fe0c8a (patch)
treef06ef9f8d1ad7ffa27f64e501228f4d312bdbc94 /bitbake/lib/bblayers
parentf08d269c484417f3284c683ed690584642d33915 (diff)
downloadpoky-b9fdb6a4261754459a01f9689010a38922fe0c8a.tar.gz
bitbake: bitbake: cooker: Split file collections per multiconfig
Splits the cooker to track a collection per multiconfig instead of a single collection for all multiconfigs. Practically speaking, this allows each multiconfigs to each have different BBMASKs that apply to it instead of each one using the mask specified in the base configuration. (Bitbake rev: dd6d8eca2027f8d9be8a734a493227b440075e49) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bblayers')
-rw-r--r--bitbake/lib/bblayers/action.py22
-rw-r--r--bitbake/lib/bblayers/query.py4
2 files changed, 17 insertions, 9 deletions
diff --git a/bitbake/lib/bblayers/action.py b/bitbake/lib/bblayers/action.py
index d6459d6617..5b78195ad4 100644
--- a/bitbake/lib/bblayers/action.py
+++ b/bitbake/lib/bblayers/action.py
@@ -143,11 +143,12 @@ build results (as the layer priority order has effectively changed).
143 143
144 applied_appends = [] 144 applied_appends = []
145 for layer in layers: 145 for layer in layers:
146 overlayed = [] 146 overlayed = set()
147 for f in self.tinfoil.cooker.collection.overlayed.keys(): 147 for mc in self.tinfoil.cooker.multiconfigs:
148 for of in self.tinfoil.cooker.collection.overlayed[f]: 148 for f in self.tinfoil.cooker.collections[mc].overlayed.keys():
149 if of.startswith(layer): 149 for of in self.tinfoil.cooker.collections[mc].overlayed[f]:
150 overlayed.append(of) 150 if of.startswith(layer):
151 overlayed.add(of)
151 152
152 logger.plain('Copying files from %s...' % layer ) 153 logger.plain('Copying files from %s...' % layer )
153 for root, dirs, files in os.walk(layer): 154 for root, dirs, files in os.walk(layer):
@@ -174,14 +175,21 @@ build results (as the layer priority order has effectively changed).
174 logger.warning('Overwriting file %s', fdest) 175 logger.warning('Overwriting file %s', fdest)
175 bb.utils.copyfile(f1full, fdest) 176 bb.utils.copyfile(f1full, fdest)
176 if ext == '.bb': 177 if ext == '.bb':
177 for append in self.tinfoil.cooker.collection.get_file_appends(f1full): 178 appends = set()
179 for mc in self.tinfoil.cooker.multiconfigs:
180 appends |= set(self.tinfoil.cooker.collections[mc].get_file_appends(f1full))
181 for append in appends:
178 if layer_path_match(append): 182 if layer_path_match(append):
179 logger.plain(' Applying append %s to %s' % (append, fdest)) 183 logger.plain(' Applying append %s to %s' % (append, fdest))
180 self.apply_append(append, fdest) 184 self.apply_append(append, fdest)
181 applied_appends.append(append) 185 applied_appends.append(append)
182 186
183 # Take care of when some layers are excluded and yet we have included bbappends for those recipes 187 # Take care of when some layers are excluded and yet we have included bbappends for those recipes
184 for b in self.tinfoil.cooker.collection.bbappends: 188 bbappends = set()
189 for mc in self.tinfoil.cooker.multiconfigs:
190 bbappends |= set(self.tinfoil.cooker.collections[mc].bbappends)
191
192 for b in bbappends:
185 (recipename, appendname) = b 193 (recipename, appendname) = b
186 if appendname not in applied_appends: 194 if appendname not in applied_appends:
187 first_append = None 195 first_append = None
diff --git a/bitbake/lib/bblayers/query.py b/bitbake/lib/bblayers/query.py
index e2cc310532..ee2db0efed 100644
--- a/bitbake/lib/bblayers/query.py
+++ b/bitbake/lib/bblayers/query.py
@@ -320,12 +320,12 @@ Lists recipes with the bbappends that apply to them as subitems.
320 def get_appends_for_files(self, filenames): 320 def get_appends_for_files(self, filenames):
321 appended, notappended = [], [] 321 appended, notappended = [], []
322 for filename in filenames: 322 for filename in filenames:
323 _, cls, _ = bb.cache.virtualfn2realfn(filename) 323 _, cls, mc = bb.cache.virtualfn2realfn(filename)
324 if cls: 324 if cls:
325 continue 325 continue
326 326
327 basename = os.path.basename(filename) 327 basename = os.path.basename(filename)
328 appends = self.tinfoil.cooker.collection.get_file_appends(basename) 328 appends = self.tinfoil.cooker.collections[mc].get_file_appends(basename)
329 if appends: 329 if appends:
330 appended.append((basename, list(appends))) 330 appended.append((basename, list(appends)))
331 else: 331 else: