package.bbclass: added support for private libraries (used only in package)
authorMarcin Juszkiewicz <hrw@openembedded.org>
Thu, 29 Mar 2007 12:50:18 +0000 (12:50 +0000)
committerMarcin Juszkiewicz <hrw@openembedded.org>
Thu, 29 Mar 2007 12:50:18 +0000 (12:50 +0000)
- if package contain libraries which are not used outside then add PRIVATE_LIBS
  variable with names of them to not generate shlibs for them.

classes/package.bbclass

index 07fdb7f..19c206a 100644 (file)
@@ -573,6 +573,7 @@ python package_do_shlibs() {
        bb.mkdirhier(shlibs_dir)
 
        needed = {}
+       private_libs = bb.data.getVar('PRIVATE_LIBS', d, 1)
        for pkg in packages.split():
                needs_ldconfig = False
                bb.debug(2, "calculating shlib provides for %s" % pkg)
@@ -596,7 +597,9 @@ python package_do_shlibs() {
                                                        needed[pkg].append(m.group(1))
                                                m = re.match("\s+SONAME\s+([^\s]*)", l)
                                                if m and not m.group(1) in sonames:
-                                                       sonames.append(m.group(1))
+                                                       # if library is private (only used by package) then do not build shlib for it
+                                                       if private_libs == '' or -1 == private_libs.find(m.group(1)):
+                                                               sonames.append(m.group(1))
                                                if m and libdir_re.match(root):
                                                        needs_ldconfig = True
                shlibs_file = os.path.join(shlibs_dir, pkg + ".list")