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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
# package_dbg.bbclass: populate -dbg versions for each package in PACKAGES
#
# Copyright (c) 2009 MontaVista Software, Inc. All rights reserved.
#
# Released under the MIT license (see LICENSE.MIT for the terms)
inherit package
PACKAGE_DBG_DESC = "Debugging files for %s"
PACKAGE_DBG_EXCLUDE = "${PN}-locale* ${PN}-doc ${PN}-dev *-dbg"
def add_dbg_packages(d):
from fnmatch import fnmatch
packages = d.getVar("PACKAGES", True).split()
excludes = d.getVar("PACKAGE_DBG_EXCLUDE", True).split()
for pkg in tuple(packages):
if any(fnmatch(pkg, excluded) for excluded in excludes):
continue
dbgpkg = "%s-dbg" % pkg
if not dbgpkg in packages:
packages.insert(0, dbgpkg)
d.setVar("PACKAGES", " ".join(packages))
# Add the -dbg packages to PACKAGES
python () {
from bb.data import inherits_class as inherits
# Task handles its own -dbg versions of its packages at the moment
if not inherits("task", d):
dynpkgs = d.getVar("PACKAGES_DYNAMIC", True).split()
dynpkgs += ["%s-dbg" % dyn for dyn in dynpkgs]
d.setVar("PACKAGES_DYNAMIC", " ".join(dynpkgs))
add_dbg_packages(d)
}
python populate_packages_prepend () {
from bb.data import inherits_class as inherits
if not inherits("task", d):
bb.build.exec_func("package_do_dbg", d)
}
# Populate the -dbg subpackage metadata
python package_do_dbg() {
""" Populate the -dbg subpackage metadata. """
import oe.package
from os.path import join, basename, dirname
def setVar(key, val):
if d.getVar(key, val) is None:
d.setVar(key, val)
add_dbg_packages(d)
packages = d.getVar("PACKAGES", True).split()
desc = d.getVar("PACKAGE_DBG_DESC", True)
done = []
for pkgname in tuple(packages):
files = tuple(oe.package.files(pkgname, d))
dbg = [join(dirname(file), ".debug", basename(file))
for file in files
if not file in done]
done.extend(files)
if dbg:
setVar("FILES_%s-dbg" % pkgname, " ".join(dbg))
setVar("DESCRIPTION_%s-dbg" % pkgname, desc % pkgname)
setVar("RDEPENDS_%s-dbg" % pkgname, pkgname)
else:
try:
packages.remove("%s-dbg" % pkgname)
except ValueError:
pass
d.setVar("PACKAGES", " ".join(packages))
}
|