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



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?

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

  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:02 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 [this message]
2022-05-05 20:53   ` James Hilliard

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=e4ccdb7f-f09f-ffbd-4450-4dcf459a6ee9@mind.be \
    --to=arnout@mind.be \
    --cc=buildroot@buildroot.org \
    --cc=eric.le.bihan.dev@free.fr \
    --cc=james.hilliard1@gmail.com \
    --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.