[yocto] Basic Yocto+CMake Usage question

Patrick Boettcher patrick.boettcher at posteo.de
Thu Mar 28 09:30:42 PDT 2019


Hi

On Thu, 28 Mar 2019 12:20:43 -0400
A <aaron.biver at gmail.com> wrote:

> I'm having issues with a yocto build that is combining recipes that
> should depend on each other, and I need a sanity check.  Is this an
> ok forum for stupid user questions?
> 
> The main idea is to have one recipe install some prebuilt libraries,
> and have another cmake-based recipe use those libraries.
> 
> As a caveat, this is a native version of the build that I seem to be
> having trouble with, but I assume that is mostly irrelevant:
> 
> In ProjectA, the meat of the matter is a do_install that copies
> ProjectA*.so into STAGING_LIBDIR.  I don't recall why I chose that
> instead of ${D}${libdir}... is it ok this way?
> In ProjectB, I'd like CMake's find_library() to find Project A's
> libraries, and I seem to be having trouble.
> 
> How would you approach this?  The recipe for Project B contains
> "inherit cmake" and some variables I pass in with an EXTRA_OECMAKE
> and an EXTRA_OECMAKE-native.
> 
> I also have there:
> DEPENDS += "ProjectA"
> DEPENDS_class-native = "ProjectA-native"
> 
> However,in ProjectB's find_library() call, I am uncertain how to
> direct it to find those libraries - what PATHS or HINTS or whatever?

I was having similar problems with this (a dependency for zeromq in my
case).

  DEPENDS = "zeromq" # build dependency

I had to add the following variable to my recipes:

  OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"

this, iiuc, tells cmake that in case of cross-compiling (via a
toolchain-file) that it shall also look in the sysroot for header
and library-files when doing find_library(). Not sure if it will work
with all find_package()-modules.

It worked, I haven't investigated further why, but I should have.

HTH.
--
Patrick.


More information about the yocto mailing list