| # |
| # Copyright OpenEmbedded Contributors |
| # |
| # SPDX-License-Identifier: MIT |
| # |
| |
| inherit siteinfo |
| |
| def meson_array(var, d): |
| items = d.getVar(var).split() |
| return repr(items[0] if len(items) == 1 else items) |
| |
| # Map our ARCH values to what Meson expects: |
| # http://mesonbuild.com/Reference-tables.html#cpu-families |
| def meson_cpu_family(var, d): |
| import re |
| arch = d.getVar(var) |
| if arch == 'powerpc': |
| return 'ppc' |
| elif arch == 'powerpc64' or arch == 'powerpc64le': |
| return 'ppc64' |
| elif arch == 'armeb': |
| return 'arm' |
| elif arch == 'aarch64_be': |
| return 'aarch64' |
| elif arch == 'loongarch64': |
| return 'loongarch64' |
| elif arch == 'mipsel': |
| return 'mips' |
| elif arch == 'mips64el': |
| return 'mips64' |
| elif re.match(r"i[3-6]86", arch): |
| return "x86" |
| elif arch == "microblazeel": |
| return "microblaze" |
| else: |
| return arch |
| |
| # Map our OS values to what Meson expects: |
| # https://mesonbuild.com/Reference-tables.html#operating-system-names |
| def meson_operating_system(var, d): |
| os = d.getVar(var) |
| if "mingw" in os: |
| return "windows" |
| # avoid e.g 'linux-gnueabi' |
| elif "linux" in os: |
| return "linux" |
| else: |
| return os |
| |
| def meson_endian(prefix, d): |
| arch, os = d.getVar(prefix + "_ARCH"), d.getVar(prefix + "_OS") |
| sitedata = siteinfo_data_for_machine(arch, os, d) |
| if "endian-little" in sitedata: |
| return "little" |
| elif "endian-big" in sitedata: |
| return "big" |
| else: |
| bb.fatal("Cannot determine endianism for %s-%s" % (arch, os)) |