All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Kanavin <alex.kanavin@gmail.com>
To: Joel Winarske <joel.winarske@gmail.com>
Cc: OE-core <Openembedded-core@lists.openembedded.org>
Subject: Re: [OE-core] [RFC] meson needs a pkg-config wrapper script
Date: Tue, 30 Nov 2021 18:49:20 +0100	[thread overview]
Message-ID: <CANNYZj-DYfd_erYQYNzATL5K_rUMfDrrvzsWD2h0n_=_kXTBxA@mail.gmail.com> (raw)
In-Reply-To: <CABKMkPJoE74O2OnAe7WsLSu56Ww4ZfPfxksZ43-Np43otAhRWA@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1630 bytes --]

On Tue, 30 Nov 2021 at 18:20, Joel Winarske <joel.winarske@gmail.com> wrote:

> Meson does not expose PKG_CONFIG_SYSROOT_DIR to the pkg-config process.
>
> Currently meson.cross as generated in meson.bbclass points directly to the
> pkg-config executable (no wrapper script).
>
> PKG_CONFIG_SYSROOT_DIR behaves like a simple string prepend to all package
> config variable queries.  So if you want to determine the absolute path of
> a variable in .pc you set PKG_CONFIG_SYSROOT_DIR and make your query.
> Currently this is not possible with Yocto+Meson.
>
> I think a simple wrapper script would resolve this.  This is from
> https://autotools.io/pkgconfig/cross-compiling.html:
>
> #!/bin/sh
>
> SYSROOT=/build/root
>
> export PKG_CONFIG_PATH=
> export PKG_CONFIG_LIBDIR=${SYSROOT}/usr/lib/pkgconfig:${SYSROOT}/usr/share/pkgconfig
> export PKG_CONFIG_SYSROOT_DIR=${SYSROOT}
>
> exec pkg-config "$@"
>
>
> The wrapper script would be generated per recipe via meson.bbclass,
> meson.cross would then reference this wrapper instead of the pkg-config
> executable.
>
> Thoughts?
>

I don't think this is correct. Meson's way of doing things is that you are
not supposed to get the include/library paths directly from pkg-config, but
rather use
https://mesonbuild.com/Reference-manual_functions.html#dependency and meson
will take care of any needed prefixes to the paths.

For the custom variables defined in .pc that happen to contain paths,
PKG_CONFIG_SYSROOT_DIR has no effect at all, so you need to manually
prepend it anyway everywhere where they're used. pkg-config does not know
what variable is a path and what isn't.

Alex

[-- Attachment #2: Type: text/html, Size: 2426 bytes --]

  reply	other threads:[~2021-11-30 17:49 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-30 17:20 [RFC] meson needs a pkg-config wrapper script Joel Winarske
2021-11-30 17:49 ` Alexander Kanavin [this message]
2021-11-30 18:25   ` [OE-core] " Joel Winarske
2021-11-30 18:53     ` Alexander Kanavin
2021-11-30 19:15       ` Joel Winarske
2021-11-30 19:39         ` Alexander Kanavin
2021-11-30 20:00           ` Joel Winarske
2021-11-30 20:03             ` Joel Winarske
2021-11-30 20:13             ` Alexander Kanavin
2021-11-30 22:37               ` Joel Winarske
2021-12-01  8:36                 ` Alexander Kanavin
2021-12-01  9:11                   ` Eero Aaltonen
     [not found]                   ` <CABKMkPJ+6xA9BtZsv-tcKKssJdhfjA4w7eSxJzNyBOg4Ak2=gw@mail.gmail.com>
2021-12-01 22:38                     ` Alexander Kanavin
2021-12-01 23:27                       ` Joel Winarske
     [not found]                       ` <16BCC5463709ABBF.10763@lists.openembedded.org>
2021-12-01 23:56                         ` Joel Winarske
2021-11-30 21:18 ` Ross Burton

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='CANNYZj-DYfd_erYQYNzATL5K_rUMfDrrvzsWD2h0n_=_kXTBxA@mail.gmail.com' \
    --to=alex.kanavin@gmail.com \
    --cc=Openembedded-core@lists.openembedded.org \
    --cc=joel.winarske@gmail.com \
    /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.