All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Hilliard <james.hilliard1@gmail.com>
To: Arnout Vandecappelle <arnout@mind.be>
Cc: Eric Le Bihan <eric.le.bihan.dev@free.fr>,
	Norbert Lange <nolange79@gmail.com>,
	"Yann E . MORIN" <yann.morin.1998@free.fr>,
	buildroot <buildroot@buildroot.org>
Subject: Re: [Buildroot] [PATCH 1/1] package/pkg-meson: use meson to build/install packages
Date: Thu, 5 May 2022 14:53:51 -0600	[thread overview]
Message-ID: <CADvTj4q5cDh2YPxwUBCiZd4VCoGz9M6Md3Efz92mBDxphBLuPQ@mail.gmail.com> (raw)
In-Reply-To: <e4ccdb7f-f09f-ffbd-4450-4dcf459a6ee9@mind.be>

On Thu, May 5, 2022 at 2:02 PM Arnout Vandecappelle <arnout@mind.be> wrote:
>
>
>
> On 05/05/2022 08:40, James Hilliard wrote:
> > As of version 0.54.0 meson has had the ability to build and install
> > packages rather than having to run ninja directly as before.
> >
> > This will allow us to use features such as meson install tags in
> > the future which require meson to be used for the installation.
> >
> > Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
> > ---
> >   .../gobject-introspection.mk                  |  4 +-
> >   package/pkg-meson.mk                          | 52 ++++++++++++++-----
> >   package/systemd/systemd.mk                    |  4 +-
> >   3 files changed, 41 insertions(+), 19 deletions(-)
> >
> > diff --git a/package/gobject-introspection/gobject-introspection.mk b/package/gobject-introspection/gobject-introspection.mk
> > index 41d64171a7..ea5100247d 100644
> > --- a/package/gobject-introspection/gobject-introspection.mk
> > +++ b/package/gobject-introspection/gobject-introspection.mk
> > @@ -30,14 +30,14 @@ HOST_GOBJECT_INTROSPECTION_DEPENDENCIES = \
> >       host-python3
> >
> >   # g-ir-scanner will default to /usr/bin/ld for linking if this is not set.
> > -GOBJECT_INTROSPECTION_NINJA_ENV += \
> > +GOBJECT_INTROSPECTION_MESON_ENV += \
>
>   If there are external packages that use this, they'll need to be updated as
> well. Yann, Peter, do you think that's acceptable?

I assume this is fairly rare, as it is barely even used in buildroot itself.

>
>   For sure, the documentation docs/manual/adding-packages-meson.txt will need to
> be updated.

Docs updated in v2:
https://patchwork.ozlabs.org/project/buildroot/patch/20220505205203.1079204-1-james.hilliard1@gmail.com/

>
>   Regards,
>   Arnout
>
> >       CC="$(TARGET_CC)"
> >
> >   # When building, gobject-introspection uses tools/g-ir-scanner to build several
> >   # .gir and .typelib files. g-ir-scanner does not use LDFLAGS, and by default,
> >   # links to the system-installed libglib2 path. To remedy this issue, defining
> >   # LD_LIBRARY_PATH forces g-ir-scanner to use our host installed libglib2 files.
> > -HOST_GOBJECT_INTROSPECTION_NINJA_ENV += \
> > +HOST_GOBJECT_INTROSPECTION_MESON_ENV += \
> >       LD_LIBRARY_PATH="$(if $(LD_LIBRARY_PATH),$(LD_LIBRARY_PATH):)$(HOST_DIR)/lib"
> >
> >   # Use the host gi-scanner to prevent the scanner from generating incorrect
> > diff --git a/package/pkg-meson.mk b/package/pkg-meson.mk
> > index f1390a18d0..bdea893d93 100644
> > --- a/package/pkg-meson.mk
> > +++ b/package/pkg-meson.mk
> > @@ -21,13 +21,13 @@
> >   ################################################################################
> >
> >   #
> > -# Pass PYTHONNOUSERSITE environment variable when invoking Meson or Ninja, so
> > +# Pass PYTHONNOUSERSITE environment variable when invoking Meson, so
> >   # $(HOST_DIR)/bin/python3 will not look for Meson modules in
> >   # $HOME/.local/lib/python3.x/site-packages
> >   #
> > -MESON                = PYTHONNOUSERSITE=y $(HOST_DIR)/bin/meson
> > -NINJA                = PYTHONNOUSERSITE=y $(HOST_DIR)/bin/ninja
> > -NINJA_OPTS   = $(if $(VERBOSE),-v) -j$(PARALLEL_JOBS)
> > +MESON              = PYTHONNOUSERSITE=y $(HOST_DIR)/bin/meson
> > +MESON_BUILD_OPTS   = $(if $(VERBOSE),-v) -j$(PARALLEL_JOBS)
> > +MESON_INSTALL_OPTS = --no-rebuild
> >
> >   # https://mesonbuild.com/Reference-tables.html#cpu-families
> >   ifeq ($(BR2_arcle)$(BR2_arceb),y)
> > @@ -172,13 +172,23 @@ $(2)_DEPENDENCIES += host-meson
> >   ifndef $(2)_BUILD_CMDS
> >   ifeq ($(4),target)
> >   define $(2)_BUILD_CMDS
> > -     $$(TARGET_MAKE_ENV) $$($$(PKG)_NINJA_ENV) \
> > -             $$(NINJA) $$(NINJA_OPTS) $$($$(PKG)_NINJA_OPTS) -C $$($$(PKG)_SRCDIR)/build
> > +     $$(TARGET_MAKE_ENV) \
> > +     $$($$(PKG)_MESON_ENV) \
> > +     $$(MESON) \
> > +             compile \
> > +             $$(MESON_BUILD_OPTS) \
> > +             $$(if $$($$(PKG)_NINJA_OPTS),--ninja-args $$($$(PKG)_NINJA_OPTS)) \
> > +             -C $$($$(PKG)_SRCDIR)/build
> >   endef
> >   else
> >   define $(2)_BUILD_CMDS
> > -     $$(HOST_MAKE_ENV) $$($$(PKG)_NINJA_ENV) \
> > -             $$(NINJA) $$(NINJA_OPTS) $$($$(PKG)_NINJA_OPTS) -C $$($$(PKG)_SRCDIR)/build
> > +     $$(HOST_MAKE_ENV) \
> > +     $$($$(PKG)_MESON_ENV) \
> > +     $$(MESON) \
> > +             compile \
> > +             $$(MESON_BUILD_OPTS) \
> > +             $$(if $$($$(PKG)_NINJA_OPTS),--ninja-args $$($$(PKG)_NINJA_OPTS)) \
> > +             -C $$($$(PKG)_SRCDIR)/build
> >   endef
> >   endif
> >   endif
> > @@ -189,8 +199,12 @@ endif
> >   #
> >   ifndef $(2)_INSTALL_CMDS
> >   define $(2)_INSTALL_CMDS
> > -     $$(HOST_MAKE_ENV) $$($$(PKG)_NINJA_ENV) \
> > -             $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_SRCDIR)/build install
> > +     $$(HOST_MAKE_ENV) \
> > +     $$($$(PKG)_MESON_ENV) \
> > +     $$(MESON) \
> > +             install \
> > +             $$(MESON_INSTALL_OPTS) \
> > +             -C $$($$(PKG)_SRCDIR)/build
> >   endef
> >   endif
> >
> > @@ -200,8 +214,13 @@ endif
> >   #
> >   ifndef $(2)_INSTALL_STAGING_CMDS
> >   define $(2)_INSTALL_STAGING_CMDS
> > -     $$(TARGET_MAKE_ENV) $$($$(PKG)_NINJA_ENV) DESTDIR=$$(STAGING_DIR) \
> > -             $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_SRCDIR)/build install
> > +     $$(TARGET_MAKE_ENV) \
> > +     $$($$(PKG)_MESON_ENV) \
> > +     $$(MESON) \
> > +             install \
> > +             $$(MESON_INSTALL_OPTS) \
> > +             --destdir $$(STAGING_DIR) \
> > +             -C $$($$(PKG)_SRCDIR)/build
> >   endef
> >   endif
> >
> > @@ -211,8 +230,13 @@ endif
> >   #
> >   ifndef $(2)_INSTALL_TARGET_CMDS
> >   define $(2)_INSTALL_TARGET_CMDS
> > -     $$(TARGET_MAKE_ENV) $$($$(PKG)_NINJA_ENV) DESTDIR=$$(TARGET_DIR) \
> > -             $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_SRCDIR)/build install
> > +     $$(TARGET_MAKE_ENV) \
> > +     $$($$(PKG)_MESON_ENV) \
> > +     $$(MESON) \
> > +             install \
> > +             $$(MESON_INSTALL_OPTS) \
> > +             --destdir $$(TARGET_DIR) \
> > +             -C $$($$(PKG)_SRCDIR)/build
> >   endef
> >   endif
> >
> > diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
> > index b309507e12..ea6f5febc2 100644
> > --- a/package/systemd/systemd.mk
> > +++ b/package/systemd/systemd.mk
> > @@ -746,7 +746,7 @@ endef
> >   SYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_PRESET_ALL
> >
> >   SYSTEMD_CONF_ENV = $(HOST_UTF8_LOCALE_ENV)
> > -SYSTEMD_NINJA_ENV = $(HOST_UTF8_LOCALE_ENV)
> > +SYSTEMD_MESON_ENV = $(HOST_UTF8_LOCALE_ENV)
> >
> >   define SYSTEMD_LINUX_CONFIG_FIXUPS
> >       $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS)
> > @@ -849,8 +849,6 @@ HOST_SYSTEMD_DEPENDENCIES = \
> >       host-gperf \
> >       host-python-jinja2
> >
> > -HOST_SYSTEMD_NINJA_ENV = DESTDIR=$(HOST_DIR)
> > -
> >   # Fix RPATH After installation
> >   # * systemd provides a install_rpath instruction to meson because the binaries
> >   #   need to link with libsystemd which is not in a standard path
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

      reply	other threads:[~2022-05-05 20:54 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-05  6:40 [Buildroot] [PATCH 1/1] package/pkg-meson: use meson to build/install packages James Hilliard
2022-05-05 20:02 ` Arnout Vandecappelle
2022-05-05 20:53   ` James Hilliard [this message]

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=CADvTj4q5cDh2YPxwUBCiZd4VCoGz9M6Md3Efz92mBDxphBLuPQ@mail.gmail.com \
    --to=james.hilliard1@gmail.com \
    --cc=arnout@mind.be \
    --cc=buildroot@buildroot.org \
    --cc=eric.le.bihan.dev@free.fr \
    --cc=nolange79@gmail.com \
    --cc=yann.morin.1998@free.fr \
    /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.