package/pkg-meson.mk: allow packages to add extra [binaries]
authorYann E. MORIN <yann.morin.1998@free.fr>
Sat, 28 Sep 2019 20:04:30 +0000 (22:04 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 5 Oct 2019 20:15:39 +0000 (22:15 +0200)
meson does not allow passing path to helper programs (e.g. pkgconfig)
using variables in the environment. Instead, it insists that those paths
be defined in the cross-compilation.conf file, in the [binaries]
section [0]

As such, allow packages to declare such a list of arbitrary entries to
add in the [binaries] section.

[0] https://github.com/mesonbuild/meson/issues/3327 for the LLVM_CONFIG
    example, which we'll address in a follow-up patch.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Cc: Peter Seiderer <ps.report@gmx.net>
Cc: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Reviewed-by: Romain Naour <romain.naour@gmail.com>
Tested-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
docs/manual/adding-packages-meson.txt
package/pkg-meson.mk

index 8e2d44878818a457c4c062bd2c8b589296bd59e4..e84bf7f60a9d92c00b9c143b398879a926a3ddd9 100644 (file)
@@ -109,6 +109,13 @@ will therefore only use a few of them.
   +cross-compile.conf+ file +c_link_args+ and +cpp_link_args+ properties. By
   default, the value of +TARGET_LDFLAGS+.
 
+* +FOO_MESON_EXTRA_BINARIES+, to specify a space-separated list of programs
+  to add to the `[binaries]` section of the meson `cross-compilation.conf`
+  configuration file. The format is `program-name='/path/to/program'`, with
+  no space around the +=+ sign, and with the path of the program between
+  single quotes. By default, empty. Note that Buildroot already sets the
+  correct values for +c+, +cpp+, +ar+, +strip+, and +pkgconfig+.
+
 * +FOO_NINJA_ENV+, to specify additional environment variables to pass to
   +ninja+, meson companion tool in charge of the build operations. By default,
   empty.
index 0b811d1cc08af4349923a60ec843372da99cfe59..f5c7b8ced343338cab457fe60be2c9bb4b33c4ad 100644 (file)
@@ -79,6 +79,9 @@ define $(2)_CONFIGURE_CMDS
            -e "s%@TARGET_LDFLAGS@%$$($(2)_MESON_SED_LDFLAGS)%g" \
            -e "s%@TARGET_CXXFLAGS@%$$($(2)_MESON_SED_CXXFLAGS)%g" \
            -e "s%@HOST_DIR@%$$(HOST_DIR)%g" \
+           $$(foreach x,$$($(2)_MESON_EXTRA_BINARIES), \
+               -e "/\(\[binaries\]\)/s:$$$$:\n$$(x):" \
+           ) \
            package/meson/cross-compilation.conf.in \
            > $$($$(PKG)_SRCDIR)/build/cross-compilation.conf
        PATH=$$(BR_PATH) $$($$(PKG)_CONF_ENV) $$(MESON) \