[yocto] how to install files in nativesdk

Burton, Ross ross.burton at intel.com
Mon Oct 8 04:10:30 PDT 2018


On Sat, 6 Oct 2018 at 06:18, Steve Scott <sscott at san.rr.com> wrote:
> I am able to generate a standard SDK with native and target
> sysroots. The target sysroot has header files for my custom
> libraries. The header files are generally installed in
> <path-to-sdk-target-sysroot>/usr/include/
>
> We use cmake and googletest running on the *host* for testing some of
> our libraries. So I need to build googletest and the test apps using the
> host (x86_64) tools. The test apps need to include the target's library
> header files.
>
> I tried specifying the SDK's *target* usr/include as an include directory to
> the compiler, but files in this tree preempted the standard compiler (g++)
> system include files. I can avoid this problem by installing the library
> header files under the SDK's native sysroot; i.e. in
> <path-to-sdk-native-sysroot>/usr/include/
> and setting this directory as an include directory on the compiler
> command line.
>
> However, I cannot grok how to get these files into the SDK's native
> tree. It seems related to
>    BBCLASSEXTEND = "native nativesdk"
> but I'm just chasing my tail trying to figure out the magic incantation.
>
> Does anyone know how to do this? Or is there a better approach?

Assuming the recipe is correctly written, simply adding:

BBCLASSEXTEND = "native nativesdk"

Will give your recipe (eg foo.bb) native and nativesdk variant
(foo-native and nativesdk-foo).  The class extension automatically
changes the paths so in general that's all you need to do.  Then just
add nativesdk-foo to your SDK using TOOLCHAIN_HOST_TASK_append = "
nativesdk-foo".

Ross


More information about the yocto mailing list