Re: how to reuse generated library in a nativesdk recipe #sdk #systemd


Mikko Rapeli
 

Hi,

(lets keep this on the list too)

On Wed, Feb 19, 2020 at 04:51:18PM +0100, Armando Hernandez wrote:
Hi Mikko,

Thanks for your reply. I checked your suggestion but does not work for me.
I did included a .bbappend file in which I:

- re-set EXTRA_OECMAKE to an empty string (i.e. ""). - my intention was
to pass no arguments when building the nativesdk. Now I know that this
accion overwrites the value of EXTRA_OECMAKE in the original .bb file
- added the line BBCLASSEXTEND = "nativesdk" to this new .bbappend file
- added the line DEPENDS_class-target += "systemd" to the original .bb
file

I found out that this configures both the target and the nativesdk
libraries without systemd - which later on causes a failure when bitbake
attempts to pull up everything to create the final image.

Basically, I'd like to find a way to unset or overwrite the following
variables when building the nativesdk package:

- SYSTEMD_PACKAGES
- SYSTEMD_SERVICE_${PN}
- SYSTEMD_AUTO_ENABLE_${PN}
- SYSTEMD_SERVICE_${PN}-systemd
- SYSTEMD_AUTO_ENABLE_${PN}-systemd
- EXTRA_OECMAKE
You can add _class-[target|native|nativesdk] to all variables
to override defaults.

Verify with "bitbake -e".

Hope this helps,

-Mikko

Is it possible to do so? Or do I come up with another recipe of the sama
package exclusively for the nativesdk?

Thanks again.

Armando Hernandez

On Wed, Feb 19, 2020 at 10:44 AM <Mikko.Rapeli@bmw.de> wrote:

Hi,

On Wed, Feb 19, 2020 at 01:37:19AM -0800, Armando Hernandez wrote:
Hello,

I have a recipe that builds a library. The recipe specifies an
additional package "${PN}-systemd" along with other systemd related
variables and finally it instructs that the package should be built with
"-DWITH_SYSTEMD=ON" being passed to cmake. So far so good. But, I extended
this recipe to nativesdk because I need this library on it. When trying to
build the corresponding nativesdk package, the build fails at the
configuration step (i.e. "do_configure") claiming it cannot find the
package systemd.

Is there a way I can install the -already-generated libraries into my
SDK (potentially via the corresponding nativesdk recipe) without having to
rebuild the package? Or do I need to somehow include such systemd package
in my sdk (which I don't think I need at all)?

Any hints and pointers as to were to look at are very well appreciated.
Thanks.
Make the systemd dependency for target only, e.g. DEPENDS_class-target +=
"systemd"
etc.

There may be relevant use cases to build some of systemd components or
tools
to native or nativesdk targets too. In that case add BBCLASSEXTEND +=
"nativesdk" etc
in a bbappend to systemd.

Hope this helps,

-Mikko

Join yocto@lists.yoctoproject.org to automatically receive all group messages.