| # |
| # SPDX-License-Identifier: GPL-2.0-only |
| # |
| |
| from oe.manifest import Manifest |
| |
| class PkgManifest(Manifest): |
| """ |
| Returns a dictionary object with mip and mlp packages. |
| """ |
| def _split_multilib(self, pkg_list): |
| pkgs = dict() |
| |
| for pkg in pkg_list.split(): |
| pkg_type = self.PKG_TYPE_MUST_INSTALL |
| |
| ml_variants = self.d.getVar('MULTILIB_VARIANTS').split() |
| |
| for ml_variant in ml_variants: |
| if pkg.startswith(ml_variant + '-'): |
| pkg_type = self.PKG_TYPE_MULTILIB |
| |
| if not pkg_type in pkgs: |
| pkgs[pkg_type] = pkg |
| else: |
| pkgs[pkg_type] += " " + pkg |
| |
| return pkgs |
| |
| def create_initial(self): |
| pkgs = dict() |
| |
| with open(self.initial_manifest, "w+") as manifest: |
| manifest.write(self.initial_manifest_file_header) |
| |
| for var in self.var_maps[self.manifest_type]: |
| if var in self.vars_to_split: |
| split_pkgs = self._split_multilib(self.d.getVar(var)) |
| if split_pkgs is not None: |
| pkgs = dict(list(pkgs.items()) + list(split_pkgs.items())) |
| else: |
| pkg_list = self.d.getVar(var) |
| if pkg_list is not None: |
| pkgs[self.var_maps[self.manifest_type][var]] = self.d.getVar(var) |
| |
| for pkg_type in pkgs: |
| for pkg in pkgs[pkg_type].split(): |
| manifest.write("%s,%s\n" % (pkg_type, pkg)) |
| |
| def create_final(self): |
| pass |
| |
| def create_full(self, pm): |
| pass |