summaryrefslogtreecommitdiffstats
path: root/meta/packages/tasks/task-oh-sdk.bb
blob: c4b8749f9c9125e2eec4f3b0dffb3eda79fb7035 (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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
DESCRIPTON = "Software Development Tasks for OpenedHand Poky"
MAINTAINER = "Richard Purdie <richard@openedhand.com>"
PR = "r10"
DEPENDS = "task-oh"
ALLOW_EMPTY = "1"
PACKAGEFUNCS =+ 'generate_sdk_pkgs'

PACKAGES = "task-oh-sdk"

RDEPENDS_task-oh-sdk = "\
    autoconf \
    automake \
    binutils \
    binutils-symlinks \
    gcc \
    gcc-symlinks \
    make \
    perl-module-re \
    perl-module-text-wrap \
    pkgconfig"

python generate_sdk_pkgs () {
    def packaged(pkg, d):
        return os.access(bb.data.expand('${STAGING_DIR}/pkgdata/runtime/%s.packaged' % pkg, d), os.R_OK)

    ohpkgs = read_pkgdata('task-oh', d)['PACKAGES']
    pkgs = bb.data.getVar('PACKAGES', d, 1).split()
    for pkg in ohpkgs.split():
        newpkg = pkg.replace('task-oh', 'task-oh-sdk')

        # for each of the task packages, add a corresponding sdk task
        pkgs.append(newpkg)

        # for each sdk task, take the rdepends of the non-sdk task, and turn
        # that into rrecommends upon the -dev versions of those, not unlike
        # the package depchain code
        spkgdata = read_subpkgdata(pkg, d)

        rdepends = explode_deps(spkgdata.get('RDEPENDS_%s' % pkg) or '')
        rreclist = []

        for depend in rdepends:
            split_depend = depend.split(' (')
            name = split_depend[0].strip()
            if packaged('%s-dev' % name, d):
                rreclist.append('%s-dev' % name)
            else:
                deppkgdata = read_subpkgdata(name, d)
                rdepends2 = explode_deps(deppkgdata.get('RDEPENDS_%s' % name) or '')
                for depend in rdepends2:
                    split_depend = depend.split(' (')
                    name = split_depend[0].strip()
                    if packaged('%s-dev' % name, d):
                        rreclist.append('%s-dev' % name)

            oldrrec = bb.data.getVar('RRECOMMENDS_%s' % newpkg, d) or ''
            bb.data.setVar('RRECOMMENDS_%s' % newpkg, oldrrec + ' ' + ' '.join(rreclist), d)
            # bb.note('RRECOMMENDS_%s = "%s"' % (newpkg, bb.data.getVar('RRECOMMENDS_%s' % newpkg, d)))

    # bb.note('pkgs is %s' % pkgs)
    bb.data.setVar('PACKAGES', ' '.join(pkgs), d)
}

PACKAGES_DYNAMIC = "task-oh-sdk-*"