summaryrefslogtreecommitdiffstats
path: root/meta/classes/meson.bbclass
diff options
context:
space:
mode:
authorAlexander Kanavin <alex.kanavin@gmail.com>2021-05-13 22:56:19 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-05-14 07:57:27 +0100
commit830e634bbb4dbefbb4059319fbdcc200b5f9ac4e (patch)
treecd2714be62d6ecb7672745b0132dc0f1231fccce /meta/classes/meson.bbclass
parent6f8cc237bf3f252802904fc732aaf4e8f6c123b4 (diff)
downloadpoky-830e634bbb4dbefbb4059319fbdcc200b5f9ac4e.tar.gz
meson.bbclass: split python routines into a separate class
This allows reusing them in nativesdk-meson without copy-pasting code. (From OE-Core rev: f2715f5f2a56f9b660f9f0fe2933ec231a2dd8c0) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/meson.bbclass')
-rw-r--r--meta/classes/meson.bbclass52
1 files changed, 1 insertions, 51 deletions
diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass
index bf9b02e06e..8ae0285f72 100644
--- a/meta/classes/meson.bbclass
+++ b/meta/classes/meson.bbclass
@@ -1,4 +1,4 @@
1inherit siteinfo python3native 1inherit python3native meson-routines
2 2
3DEPENDS_append = " meson-native ninja-native" 3DEPENDS_append = " meson-native ninja-native"
4 4
@@ -35,56 +35,6 @@ MESON_CROSS_FILE = ""
35MESON_CROSS_FILE_class-target = "--cross-file ${WORKDIR}/meson.cross" 35MESON_CROSS_FILE_class-target = "--cross-file ${WORKDIR}/meson.cross"
36MESON_CROSS_FILE_class-nativesdk = "--cross-file ${WORKDIR}/meson.cross" 36MESON_CROSS_FILE_class-nativesdk = "--cross-file ${WORKDIR}/meson.cross"
37 37
38def meson_array(var, d):
39 items = d.getVar(var).split()
40 return repr(items[0] if len(items) == 1 else items)
41
42# Map our ARCH values to what Meson expects:
43# http://mesonbuild.com/Reference-tables.html#cpu-families
44def meson_cpu_family(var, d):
45 import re
46 arch = d.getVar(var)
47 if arch == 'powerpc':
48 return 'ppc'
49 elif arch == 'powerpc64' or arch == 'powerpc64le':
50 return 'ppc64'
51 elif arch == 'armeb':
52 return 'arm'
53 elif arch == 'aarch64_be':
54 return 'aarch64'
55 elif arch == 'mipsel':
56 return 'mips'
57 elif arch == 'mips64el':
58 return 'mips64'
59 elif re.match(r"i[3-6]86", arch):
60 return "x86"
61 elif arch == "microblazeel":
62 return "microblaze"
63 else:
64 return arch
65
66# Map our OS values to what Meson expects:
67# https://mesonbuild.com/Reference-tables.html#operating-system-names
68def meson_operating_system(var, d):
69 os = d.getVar(var)
70 if "mingw" in os:
71 return "windows"
72 # avoid e.g 'linux-gnueabi'
73 elif "linux" in os:
74 return "linux"
75 else:
76 return os
77
78def meson_endian(prefix, d):
79 arch, os = d.getVar(prefix + "_ARCH"), d.getVar(prefix + "_OS")
80 sitedata = siteinfo_data_for_machine(arch, os, d)
81 if "endian-little" in sitedata:
82 return "little"
83 elif "endian-big" in sitedata:
84 return "big"
85 else:
86 bb.fatal("Cannot determine endianism for %s-%s" % (arch, os))
87
88addtask write_config before do_configure 38addtask write_config before do_configure
89do_write_config[vardeps] += "CC CXX LD AR NM STRIP READELF CFLAGS CXXFLAGS LDFLAGS" 39do_write_config[vardeps] += "CC CXX LD AR NM STRIP READELF CFLAGS CXXFLAGS LDFLAGS"
90do_write_config() { 40do_write_config() {