[Buildroot] [PATCH next v2] package/pkg-meson: support per-package directories

Peter Korsgaard peter at korsgaard.com
Thu Jan 17 21:54:19 UTC 2019

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni at bootlin.com> writes:

 > From: Peter Seiderer <ps.report at gmx.net>
 > Currently, package/meson/meson.mk generates a single global
 > cross-compilation.conf file, with the path to the compiler, cflags,
 > ldflags, and various other details. This file is then used when
 > building all meson-based packages.

 > This causes two problems:

 >  - It is not compatible with per-package directories, because with
 >    per-package folders, we need to use a different compiler, and
 >    possibly CFLAGS/LDFLAGS for each package.

 >  - It is not possible to define per package CFLAGS. Indeed, when
 >    cross-compiling, meson doesn't support passing CFLAGS through the
 >    environment, only the CFLAGS from cross-compilation.conf are taken
 >    into account.

 > For this reason, this commit:

 >  - Introduces a per-package cross-compilation.conf, which is generated
 >    by the pkg-meson infrastructure in the "configure" step right
 >    before calling meson. The file is generated in $(@D)/build/, and
 >    because it is generated within a given package "configure" step,
 >    the compiler path is the one of this package.

 >  - Keeps the global cross-compilation.conf in $(HOST_DIR)/etc/meson/,
 >    for the SDK use-case of Buildroot. Since we want the final and
 >    global values of the compiler path, CFLAGS and LDFLAGS, generating
 >    this global cross-compilation.conf is moved to a
 >    TARGET_FINALIZE_HOOKS. If we were keeping this as a
 >    HOST_MESON_POST_INSTALL_HOOKS, it would contain values specific to
 >    the host-meson package.

 > For now, we don't yet support per-package CFLAGS/LDFLAGS, but having
 > such per-package cross-compilation.conf is a necessary preparation to
 > achieve this goal.

 > This commit has been tested by building all Buildroot packages that
 > use meson: json-glib, systemd, enlightenment, at-spi2-core, ncmpc,
 > libmpdclient and ncmpc.

 > Signed-off-by: Peter Seiderer <ps.report at gmx.net>
 > [Thomas:
 >  - add extended commit log
 >  - in pkg-meson.mk, re-use variables defined in meson.mk to do the
 >    replacement of CFLAGS/LDFLAGS/CXXFLAGS
 >  - move the generation of the global cross-compilation.conf to a
 >  - testing with per-package folders]
 > Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
 > ---
 > Changes since v1:
 >  - Rework commit title and commit log. Indeed, we don't implement
 >    per-package CFLAGS as part of this commit, contrary to what the
 >    previous commit log was saying. However, having a per-package
 >    cross-compilation.conf is a necessary preparation step to implement
 >    per-package CFLAGS in the future.

Committed, thanks.

Bye, Peter Korsgaard

More information about the buildroot mailing list