52 lines
1.4 KiB
Plaintext
52 lines
1.4 KiB
Plaintext
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 == '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))
|