aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes/targets-list-image.bbclass
blob: 7c05cd3818df267a7869208d96d38536442701cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
python collect_packages () {
    import oe.packagedata
    if isinstance(e, bb.event.TargetsListGenerated):
        #bb.warn("bb.event.TargetsListGenerated e '%s'" % e._model)
        pkgs_to_install = []
        for pn in e._model:
            data = oe.packagedata.read_pkgdata(pn, e.data)
            excluded = 'EXCLUDE_FROM_WORLD' in data and data['EXCLUDE_FROM_WORLD'] == '1'
            excluded_image = 'EXCLUDE_FROM_WORLD_IMAGE' in data and data['EXCLUDE_FROM_WORLD_IMAGE'] == '1'
            if excluded or excluded_image:
                #bb.warn("Skipping whole '%s' because it's explicitly excluded from world(-image)" % pn)
                continue

            if 'PACKAGES' in data:
	        pkgs = data['PACKAGES'].split()
                if 'EXCLUDE_PACKAGES_FROM_WORLD_IMAGE' in data:
                    excluded_packages = data['EXCLUDE_PACKAGES_FROM_WORLD_IMAGE'].split()
                    for pkg in pkgs:
                        if pkg not in excluded_packages:
                            pkgs_to_install.append(pkg)
#                        else:
#                            bb.warn("Skipping '%s' from '%s' because it's explicitly excluded from world-image" % (pkg, pn))
                else:
                    pkgs_to_install.extend(pkgs)
#            else:
#                bb.warn("No packages in '%s'" % pn)

            bb.warn("pkgs_to_install after '%s': '%s'" % (pn, pkgs_to_install))
        e.data.setVar("IMAGE_INSTALL_pn-targets-list-image", ' '.join(pkgs_to_install))
}

addhandler collect_packages