]> code.ossystems Code Review - openembedded-core.git/commitdiff
package: Add auto package splitting of .debug files
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 15 Dec 2015 15:38:54 +0000 (15:38 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 15 Dec 2015 15:44:02 +0000 (15:44 +0000)
Creating FILES_${PN}-dbg is tedious and also pretty pointless. We might as well
assume ".debug" is a special directory name and split into -dbg automatically.

This change does so without changing the rest of the splitting logic too much.
It can be disabled for the cases where we really do want manual control of
the -dbg packages (e.g. qt4) with NOAUTOPACKAGEDEBUG = "1".

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/package.bbclass
meta/recipes-qt/qt4/qt4.inc

index 2bae34189d0ad0d4c44370c1f04091e43d0e9fcb..54f7ae55cf4b6e4d14fa8b4c267791d84ace3637 100644 (file)
@@ -1039,6 +1039,8 @@ python populate_packages () {
 
     bb.utils.mkdirhier(outdir)
     os.chdir(dvar)
+    
+    autodebug = not (d.getVar("NOAUTOPACKAGEDEBUG", True) or False)
 
     # Sanity check PACKAGES for duplicates
     # Sanity should be moved to sanity.bbclass once we have the infrastucture
@@ -1048,6 +1050,8 @@ python populate_packages () {
         if pkg in package_list:
             msg = "%s is listed in PACKAGES multiple times, this leads to packaging errors." % pkg
             package_qa_handle_error("packages-list", msg, d)
+        elif autodebug and pkg.endswith("-dbg"):
+            package_list.insert(0, pkg)
         else:
             package_list.append(pkg)
     d.setVar('PACKAGES', ' '.join(package_list))
@@ -1058,6 +1062,16 @@ python populate_packages () {
     # os.mkdir masks the permissions with umask so we have to unset it first
     oldumask = os.umask(0)
 
+    debug = []
+    for root, dirs, files in cpath.walk(dvar):
+        dir = root[len(dvar):]
+        if not dir:
+            dir = os.sep
+        for f in (files + dirs):
+            path = "." + os.path.join(dir, f)
+            if "/.debug/" in path or path.endswith("/.debug"):
+                debug.append(path)
+
     for pkg in package_list:
         root = os.path.join(pkgdest, pkg)
         bb.utils.mkdirhier(root)
@@ -1071,6 +1085,9 @@ python populate_packages () {
         origfiles = filesvar.split()
         files = files_from_filevars(origfiles)
 
+        if autodebug and pkg.endswith("-dbg"):
+            files.extend(debug)
+
         for file in files:
             if (not cpath.islink(file)) and (not cpath.exists(file)):
                 continue
index 2058e54d3d30f2367dfc8de7ff120f27c6816a2b..91be769231e5dfee7a35074c2fff1d44bddf18c6 100644 (file)
@@ -129,6 +129,7 @@ PACKAGES_DYNAMIC += "^${QT_BASE_NAME}-plugin-.* ^${QT_BASE_NAME}-translation-.*
 
 ALLOW_EMPTY_${PN} = "1"
 FILES_${PN}     = ""
+NOAUTOPACKAGEDEBUG = "1"
 FILES_${PN}-dev = "${includedir}/${QT_DIR_NAME}/Qt/*"
 FILES_${PN}-dbg = "/usr/src/debug/"
 FILES_${QT_BASE_NAME}-demos-doc = "${docdir}/${QT_DIR_NAME}/qch/qt.qch"