From: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
To: Matt Madison <matt@madison.systems>,
openembedded-core@lists.openembedded.org
Subject: Re: cmake.bbclass questions
Date: Wed, 11 Feb 2015 11:21:32 +0100 [thread overview]
Message-ID: <54DB2D2C.3010404@herbrechtsmeier.net> (raw)
In-Reply-To: <CAGgRHJpOuqFFie9tycFK+7N5nj_GjfP3oGTAAyZoy+i3tpAfvA@mail.gmail.com>
Am 10.02.2015 um 23:53 schrieb Matt Madison:
> I just finished some recipes for some CMake-built packages (from the
> Kurento project). I managed to get everything building, but I had to
> modify how cmake.bbclass does things, and I'm wondering if there's a
> better way to solve some of these.
>
> Each of the packages generates a pkg-config file and a CMake module
> that are then used by other packages (later in the build) to locate
> their dependencies. I see that cmake.bbclass hard-codes the
> CMAKE_MODULE_PATH setting to point to just the location in the native
> sysroot, but target packages can't install their CMake modules there.
> I tweaked the definition so that when building non-native packages,
> CMAKE_MODULE_PATH points into both the target sysroot and the native
> sysroot. This seemed to do the trick, but wasn't sure it was the
> correct way to solve this.
Instead of a CMake module the project should install a
<Name>Config.cmake in its data directory and append a private module
directory to the CMAKE_MODULE_PATH.
> The generated pkg-config files were a bit trickier - the CMakefiles
> that generate them assume that the CMAKE_INSTALL_xxxDIR variables are
> always relative paths, but cmake.bbclass passes in absolute paths --
> which, by my read of the CMake docs, is allowed. I think in this case
> the Kurento CMakefiles need fixing, but there were a lot of them, so
> it was simpler to change cmake.bbclass to strip the prefix off the
> front of those variable settings.
CMake supports relative and absolute paths for the CMAKE_INSTALL_xxxDIR
variables but the default are relative paths.
The CMake files sould be fixed and extract the relative path from the
full path variable:
file (RELATIVE_PATH CMAKE_INSTALL_RELATIVE_LIBDIR
"${CMAKE_INSTALL_PREFIX}" "${CMAKE_INSTALL_FULL_LIBDIR}")
Regards,
Stefan
next prev parent reply other threads:[~2015-02-11 10:32 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-10 22:53 cmake.bbclass questions Matt Madison
2015-02-11 10:21 ` Stefan Herbrechtsmeier [this message]
2015-02-11 12:33 ` Matt Madison
2015-02-11 13:12 ` Stefan Herbrechtsmeier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54DB2D2C.3010404@herbrechtsmeier.net \
--to=stefan@herbrechtsmeier.net \
--cc=matt@madison.systems \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.