Hallo Yocto developpers!

I'm trying to build a Makefile based library. The recipe looks like this:
---[recipe mesages.bb]---
# SNIP recipe header

do_compile() {
  oe_runmake LDFLAGS="${LDFLAGS}" shared-lib
  oe_runmake LDFLAGS="${LDFLAGS}" static-lib
}

do_install() {
  oe_runmake install DESTDIR=${D}${prefix}

  # Fix pkg-config
  sed -i 's,${D},,g' ${D}/usr/lib/pkgconfig/messages.pc

  # FIXME: Try to make a debian package libmessages instead
  # This avoids errors when installing an app linking with this library!
  rm ${D}/${libdir}/lib${PN}.so
}
---[/recipe mesages.bb]---

The resulted image in WORKDIR looks like this:
---[WORKDIR/image]---
image/usr/lib/libmessages.so.0.3.0
image/usr/lib/libmessages.so.0
image/usr/lib/libmessages.a
image/usr/lib/pkgconfig/messages.pc
image/usr/include/messages/<all my headers>
---[/WORKDIR/image]---

The generated ipk packages are:
---[ipks]---
messages-dev_git.ipk
messages_git.ipk
messages-staticdev_git.ipk
messages-dbg_git.ipk
---[/ipks]---

The problem is that an application compiled with this library links against the static library. If I don't remove the .so file from the recipe, my application fails installing:
---[bitbake error]---
ERROR: myApp do_package_qa: QA Issue: /usr/bin/myApp contained in package myApp requires libmessages.so, but no providers found in RDEPENDS_myApp? [file-rdeps]
---[/bitbake error]---

Probably because the .so gets packed in the messages-dev.ipk ...

The strange thing is that I would expect a generated ipk with debian naming such as:
libmessages_git.ipk
libmessages-dbg_git.ipk
libmessages-dev_git.ipk
libmessages-staticdev_git.ipk


I  have other libraries based on cmake and everything works as expected!

Despite the recipe already inherits "debian", explicitly inheriting this class doesn't help.

What am I doing wrong?

Guy Morand
--
_______________________________________________
yocto mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to