> -----Original Message-----
> From: Paul Eggleton [mailto:paul.eggle...@linux.intel.com]
> Sent: Tuesday, September 23, 2014 9:54 AM
> To: Matt Schuckmann
> Cc: yocto@yoctoproject.org
> Subject: Re: [yocto] How to include static library and headers in sdk
> 
> On Tuesday 23 September 2014 09:43:55 Matt Schuckmann wrote:
> > > -----Original Message-----
> > > From: Paul Eggleton [mailto:paul.eggle...@linux.intel.com]
> > > Sent: Tuesday, September 23, 2014 2:10 AM
> > > To: Matt Schuckmann
> > > Cc: yocto@yoctoproject.org
> > > Subject: Re: [yocto] How to include static library and headers in
> > > sdk
> > >
> > > On Monday 22 September 2014 18:57:03 Matt Schuckmann wrote:
> > > > I've got a custom image and 2 custom recipes both very simple
> > > > libraries that use cmake. I included the libraries into my image
> > > > by adding EXTRA_IMAGEDEPENDS += "simple1"
> > > > EXTRA_IMAGEDEPENDS += "simple2"
> > > > To my image recipe.
> > >
> > > Except this doesn't actually add those things into your image, it
> > > only ensures they are built alongside it. To actually add them to
> > > the image
> >
> > > you need to ensure you add them to IMAGE_INSTALL; see:
> > If I add my simple1 and simple2 recipes to IMAGE_INSTALL I get the
> > following error in the do_rootfs task: * opkg_install_cmd: Cannot
> > install package simple1.
> >
> > I assumed that this is because there really is nothing to install in
> > the image as this is a static library with nothing that should go in
> the image.
> > > http://www.yoctoproject.org/docs/current/dev-manual/dev-> >
> > > manual.html#usingpoky-extend-customimage
> > >
> > > > When I build my image (i.e. bitbake custom-image ) I can see that
> > > > the library header files and .a files are placed in the correct
> > > > place in the sysroot directory.
> > > >
> > > > However when I try to create an sdk (i.e. bitbake custom-image -c
> > > > populate_sdk) and then install the SDK the headers and .a files
> > > > are nowhere to be found in the installed sysroot.
> > >
> > > If you want all -staticdev packages in the SDK for the libraries in
> > > your image, add the following to your local.conf (or the image
> > > recipe,
> > >
> > > doesn't matter which):
> > >  SDKIMAGE_FEATURES = "dev-pkgs dbg-pkgs staticdev-pkgs"
> > >
> > > If you want a single staticdev package in the SDK you'd need to add
> > > the
> > >
> > > following instead:
> > >  TOOLCHAIN_HOST_TASK_append = " simple1-staticdev"
> >
> > Again if I try adding this to my image recipe I get a similar error
> > * opkg_install_cmd: Cannot install package simple1-staticdev.
> >
> > For reference here is my simple1 recipe, maybe I'm missing something
> > in there.
> >
> > DESCRIPTION = "Simple library 1."
> > LICENSE = "CLOSED"
> > LIC_FILES_CHKSUM = ""
> >
> > SRC_URI = "git://g...@gitlab.work.net/libs/simple1.git;protocol=ssh"
> > SRCREV = "${AUTOREV}"
> >
> > S = "${WORKDIR}/git"
> >
> > inherit pkgconfig cmake
> 
> So is your recipe actually producing any packages at all? i.e. are any
> of the directories under packages-split within the workdir for the
> recipe non-empty?
> At the moment it looks like it isn't producing anything.

Yes the simple1-dev directory contains the include files and the library file 
under usr/include and usr/lib respectively. 
The simple1-staticdev directory contains only the library file under usr/lib. 

My understanding, limited as it is, is that the cmake class handles identifying 
what goes in what package automagicaly assuming some basic conventions about 
where things get installed. Note if I run: 
bitbake -e simple1
and search for FILES_simple1-staticdev I find: 
# $FILES_simple1-staticdev
#   rename from FILES_${PN}-staticdev data.py:170 [expandKeys]
FILES_simple1-staticdev="/usr/lib/*.a /lib/*.a /usr/lib/simple1/*.a"

Or search for FILES_simple1-dev
#
# $FILES_simple1-dev
#   rename from FILES_${PN}-dev data.py:170 [expandKeys]
#     "${includedir} ${FILES_SOLIBSDEV} ${libdir}/*.la ${libdir}/*.o 
${libdir}/pkgconfig ${datadir}/pkgconfig ${datadir}/aclocal ${base_libdir}/*.o 
${libdir}/${BPN}/*.la ${base_libdir}/*.la"
FILES_jsoncpp-dev="/usr/include /lib/lib*.so /usr/lib/lib*.so /usr/lib/*.la 
/usr/lib/*.o /usr/lib/pkgconfig /usr/share/pkgconfig /usr/share/aclocal 
/lib/*.o /usr/lib/simple1/*.la /lib/*.la"

If my understanding is wrong then that's totally understandable as I'm new to 
this as there really isn't much of any documentation on how the cmake class 
works. 

Thanks,
Matt S. 
-- 
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to