From 7fd8bc469c2caacc1c2021bd0aa83dd6da7fe1e7 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Wed, 13 Jun 2018 12:50:45 +0100 Subject: [PATCH] meson: only use lists of commands in cross file if required There's a bug in Meson[1] where it find_program("foo") will fail if foo is defined in the cross file as a list. This is causing the Meson build of libdrm to fail, but for this instance we can work around the problem by only using lists in the cross file if there are arguments, and just using a string if there are not. [1] https://github.com/mesonbuild/meson/issues/3737 Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/classes/meson.bbclass | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass index 5881765abb..e572344bd2 100644 --- a/meta/classes/meson.bbclass +++ b/meta/classes/meson.bbclass @@ -42,7 +42,8 @@ MESON_CROSS_FILE_class-target = "--cross-file ${WORKDIR}/meson.cross" MESON_CROSS_FILE_class-nativesdk = "--cross-file ${WORKDIR}/meson.cross" def meson_array(var, d): - return "', '".join(d.getVar(var).split()).join(("'", "'")) + items = d.getVar(var).split() + return repr(items[0] if len(items) == 1 else items) addtask write_config before do_configure do_write_config[vardeps] += "MESON_C_ARGS MESON_CPP_ARGS MESON_LINK_ARGS CC CXX LD AR NM STRIP READELF" @@ -50,21 +51,21 @@ do_write_config() { # This needs to be Py to split the args into single-element lists cat >${WORKDIR}/meson.cross <