diff options
author | Joshua Watt <JPEWhacker@gmail.com> | 2020-06-05 22:15:29 -0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-06-10 12:30:01 +0100 |
commit | b9fdb6a4261754459a01f9689010a38922fe0c8a (patch) | |
tree | f06ef9f8d1ad7ffa27f64e501228f4d312bdbc94 /bitbake/lib/bblayers | |
parent | f08d269c484417f3284c683ed690584642d33915 (diff) | |
download | poky-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.py | 22 | ||||
-rw-r--r-- | bitbake/lib/bblayers/query.py | 4 |
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: |