summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes-recipe/meson-routines.bbclass6
-rw-r--r--meta/classes-recipe/meson.bbclass7
2 files changed, 11 insertions, 2 deletions
diff --git a/meta/classes-recipe/meson-routines.bbclass b/meta/classes-recipe/meson-routines.bbclass
index a944a8fff1..9925465ed8 100644
--- a/meta/classes-recipe/meson-routines.bbclass
+++ b/meta/classes-recipe/meson-routines.bbclass
@@ -10,6 +10,12 @@ def meson_array(var, d):
10 items = d.getVar(var).split() 10 items = d.getVar(var).split()
11 return repr(items[0] if len(items) == 1 else items) 11 return repr(items[0] if len(items) == 1 else items)
12 12
13def meson_array_abspath(var, d):
14 import shutil
15 items = d.getVar(var).split()
16 items[0] = shutil.which(items[0]) or items[0]
17 return repr(items[0] if len(items) == 1 else items)
18
13# Map our ARCH values to what Meson expects: 19# Map our ARCH values to what Meson expects:
14# http://mesonbuild.com/Reference-tables.html#cpu-families 20# http://mesonbuild.com/Reference-tables.html#cpu-families
15def meson_cpu_family(var, d): 21def meson_cpu_family(var, d):
diff --git a/meta/classes-recipe/meson.bbclass b/meta/classes-recipe/meson.bbclass
index 03fa2c06eb..31675cf42d 100644
--- a/meta/classes-recipe/meson.bbclass
+++ b/meta/classes-recipe/meson.bbclass
@@ -64,10 +64,13 @@ addtask write_config before do_configure
64do_write_config[vardeps] += "CC CXX AR NM STRIP READELF OBJCOPY CFLAGS CXXFLAGS LDFLAGS RUSTC RUSTFLAGS EXEWRAPPER_ENABLED" 64do_write_config[vardeps] += "CC CXX AR NM STRIP READELF OBJCOPY CFLAGS CXXFLAGS LDFLAGS RUSTC RUSTFLAGS EXEWRAPPER_ENABLED"
65do_write_config() { 65do_write_config() {
66 # This needs to be Py to split the args into single-element lists 66 # This needs to be Py to split the args into single-element lists
67 # The generated compile_commands.json file can be used by external IDEs
68 # which do not know the $PATH set-up by bitbake. They need the absolute
69 # compiler paths.
67 cat >${WORKDIR}/meson.cross <<EOF 70 cat >${WORKDIR}/meson.cross <<EOF
68[binaries] 71[binaries]
69c = ${@meson_array('CC', d)} 72c = ${@meson_array_abspath('CC', d)}
70cpp = ${@meson_array('CXX', d)} 73cpp = ${@meson_array_abspath('CXX', d)}
71cython = 'cython3' 74cython = 'cython3'
72ar = ${@meson_array('AR', d)} 75ar = ${@meson_array('AR', d)}
73nm = ${@meson_array('NM', d)} 76nm = ${@meson_array('NM', d)}