Gentoo Archives: gentoo-dev

From: Mike Gilbert <floppym@g.o>
To: gentoo-dev@l.g.o
Cc: williamh@g.o, chewi@g.o, Mike Gilbert <floppym@g.o>
Subject: [gentoo-dev] [PATCH 2/3] meson.eclass: use meson-array script
Date: Fri, 11 Dec 2020 23:18:33
Message-Id: 20201211231744.1078574-2-floppym@gentoo.org
In Reply to: [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script by Mike Gilbert
1 This allows python-exec to pick a suitable interpreter when
2 /usr/bin/python is missing.
3
4 Closes: https://bugs.gentoo.org/759433
5 Signed-off-by: Mike Gilbert <floppym@g.o>
6 ---
7 eclass/meson.eclass | 100 +++++++++++++++++---------------------------
8 1 file changed, 39 insertions(+), 61 deletions(-)
9
10 diff --git a/eclass/meson.eclass b/eclass/meson.eclass
11 index 21338280df33..4cc321987dfb 100644
12 --- a/eclass/meson.eclass
13 +++ b/eclass/meson.eclass
14 @@ -54,7 +54,7 @@ EXPORT_FUNCTIONS src_configure src_compile src_test src_install
15 if [[ -z ${_MESON_ECLASS} ]]; then
16 _MESON_ECLASS=1
17
18 -MESON_DEPEND=">=dev-util/meson-0.54.0
19 +MESON_DEPEND=">=dev-util/meson-0.55.3-r1
20 >=dev-util/ninja-1.8.2"
21
22 if [[ ${EAPI:-0} == [6] ]]; then
23 @@ -107,28 +107,6 @@ print("[{}]".format(
24 ", ".join([quote(x) for x in shlex.split(" ".join(sys.argv[1:]))])))
25 EOF
26
27 -# @FUNCTION: _meson_env_array
28 -# @INTERNAL
29 -# @DESCRIPTION:
30 -# Parses the command line flags and converts them into an array suitable for
31 -# use in a cross file.
32 -#
33 -# Input: --single-quote=\' --double-quote=\" --dollar=\$ --backtick=\`
34 -# --backslash=\\ --full-word-double="Hello World"
35 -# --full-word-single='Hello World'
36 -# --full-word-backslash=Hello\ World
37 -# --simple --unicode-8=© --unicode-16=𐐷 --unicode-32=𐤅
38 -#
39 -# Output: ['--single-quote=\'', '--double-quote="', '--dollar=$',
40 -# '--backtick=`', '--backslash=\\', '--full-word-double=Hello World',
41 -# '--full-word-single=Hello World',
42 -# '--full-word-backslash=Hello World', '--simple', '--unicode-8=©',
43 -# '--unicode-16=𐐷', '--unicode-32=𐤅']
44 -#
45 -_meson_env_array() {
46 - python -c "${__MESON_ARRAY_PARSER}" "$@"
47 -}
48 -
49 # @FUNCTION: _meson_get_machine_info
50 # @USAGE: <tuple>
51 # @RETURN: system/cpu_family/cpu variables
52 @@ -173,29 +151,29 @@ _meson_create_cross_file() {
53
54 cat > "${fn}" <<-EOF
55 [binaries]
56 - ar = $(_meson_env_array "$(tc-getAR)")
57 - c = $(_meson_env_array "$(tc-getCC)")
58 - cpp = $(_meson_env_array "$(tc-getCXX)")
59 - fortran = $(_meson_env_array "$(tc-getFC)")
60 + ar = $(meson-array "$(tc-getAR)")
61 + c = $(meson-array "$(tc-getCC)")
62 + cpp = $(meson-array "$(tc-getCXX)")
63 + fortran = $(meson-array "$(tc-getFC)")
64 llvm-config = '$(tc-getPROG LLVM_CONFIG llvm-config)'
65 - nm = $(_meson_env_array "$(tc-getNM)")
66 - objc = $(_meson_env_array "$(tc-getPROG OBJC cc)")
67 - objcpp = $(_meson_env_array "$(tc-getPROG OBJCXX c++)")
68 + nm = $(meson-array "$(tc-getNM)")
69 + objc = $(meson-array "$(tc-getPROG OBJC cc)")
70 + objcpp = $(meson-array "$(tc-getPROG OBJCXX c++)")
71 pkgconfig = '$(tc-getPKG_CONFIG)'
72 - strip = $(_meson_env_array "$(tc-getSTRIP)")
73 - windres = $(_meson_env_array "$(tc-getRC)")
74 + strip = $(meson-array "$(tc-getSTRIP)")
75 + windres = $(meson-array "$(tc-getRC)")
76
77 [properties]
78 - c_args = $(_meson_env_array "${CFLAGS} ${CPPFLAGS}")
79 - c_link_args = $(_meson_env_array "${CFLAGS} ${LDFLAGS}")
80 - cpp_args = $(_meson_env_array "${CXXFLAGS} ${CPPFLAGS}")
81 - cpp_link_args = $(_meson_env_array "${CXXFLAGS} ${LDFLAGS}")
82 - fortran_args = $(_meson_env_array "${FCFLAGS}")
83 - fortran_link_args = $(_meson_env_array "${FCFLAGS} ${LDFLAGS}")
84 - objc_args = $(_meson_env_array "${OBJCFLAGS} ${CPPFLAGS}")
85 - objc_link_args = $(_meson_env_array "${OBJCFLAGS} ${LDFLAGS}")
86 - objcpp_args = $(_meson_env_array "${OBJCXXFLAGS} ${CPPFLAGS}")
87 - objcpp_link_args = $(_meson_env_array "${OBJCXXFLAGS} ${LDFLAGS}")
88 + c_args = $(meson-array "${CFLAGS} ${CPPFLAGS}")
89 + c_link_args = $(meson-array "${CFLAGS} ${LDFLAGS}")
90 + cpp_args = $(meson-array "${CXXFLAGS} ${CPPFLAGS}")
91 + cpp_link_args = $(meson-array "${CXXFLAGS} ${LDFLAGS}")
92 + fortran_args = $(meson-array "${FCFLAGS}")
93 + fortran_link_args = $(meson-array "${FCFLAGS} ${LDFLAGS}")
94 + objc_args = $(meson-array "${OBJCFLAGS} ${CPPFLAGS}")
95 + objc_link_args = $(meson-array "${OBJCFLAGS} ${LDFLAGS}")
96 + objcpp_args = $(meson-array "${OBJCXXFLAGS} ${CPPFLAGS}")
97 + objcpp_link_args = $(meson-array "${OBJCXXFLAGS} ${LDFLAGS}")
98 needs_exe_wrapper = true
99 sys_root = '${SYSROOT}'
100 pkg_config_libdir = '${PKG_CONFIG_LIBDIR:-${EPREFIX}/usr/$(get_libdir)/pkgconfig}'
101 @@ -224,29 +202,29 @@ _meson_create_native_file() {
102
103 cat > "${fn}" <<-EOF
104 [binaries]
105 - ar = $(_meson_env_array "$(tc-getBUILD_AR)")
106 - c = $(_meson_env_array "$(tc-getBUILD_CC)")
107 - cpp = $(_meson_env_array "$(tc-getBUILD_CXX)")
108 - fortran = $(_meson_env_array "$(tc-getBUILD_PROG FC gfortran)")
109 + ar = $(meson-array "$(tc-getBUILD_AR)")
110 + c = $(meson-array "$(tc-getBUILD_CC)")
111 + cpp = $(meson-array "$(tc-getBUILD_CXX)")
112 + fortran = $(meson-array "$(tc-getBUILD_PROG FC gfortran)")
113 llvm-config = '$(tc-getBUILD_PROG LLVM_CONFIG llvm-config)'
114 - nm = $(_meson_env_array "$(tc-getBUILD_NM)")
115 - objc = $(_meson_env_array "$(tc-getBUILD_PROG OBJC cc)")
116 - objcpp = $(_meson_env_array "$(tc-getBUILD_PROG OBJCXX c++)")
117 + nm = $(meson-array "$(tc-getBUILD_NM)")
118 + objc = $(meson-array "$(tc-getBUILD_PROG OBJC cc)")
119 + objcpp = $(meson-array "$(tc-getBUILD_PROG OBJCXX c++)")
120 pkgconfig = '$(tc-getBUILD_PKG_CONFIG)'
121 - strip = $(_meson_env_array "$(tc-getBUILD_STRIP)")
122 - windres = $(_meson_env_array "$(tc-getBUILD_PROG RC windres)")
123 + strip = $(meson-array "$(tc-getBUILD_STRIP)")
124 + windres = $(meson-array "$(tc-getBUILD_PROG RC windres)")
125
126 [properties]
127 - c_args = $(_meson_env_array "${BUILD_CFLAGS} ${BUILD_CPPFLAGS}")
128 - c_link_args = $(_meson_env_array "${BUILD_CFLAGS} ${BUILD_LDFLAGS}")
129 - cpp_args = $(_meson_env_array "${BUILD_CXXFLAGS} ${BUILD_CPPFLAGS}")
130 - cpp_link_args = $(_meson_env_array "${BUILD_CXXFLAGS} ${BUILD_LDFLAGS}")
131 - fortran_args = $(_meson_env_array "${BUILD_FCFLAGS}")
132 - fortran_link_args = $(_meson_env_array "${BUILD_FCFLAGS} ${BUILD_LDFLAGS}")
133 - objc_args = $(_meson_env_array "${BUILD_OBJCFLAGS} ${BUILD_CPPFLAGS}")
134 - objc_link_args = $(_meson_env_array "${BUILD_OBJCFLAGS} ${BUILD_LDFLAGS}")
135 - objcpp_args = $(_meson_env_array "${BUILD_OBJCXXFLAGS} ${BUILD_CPPFLAGS}")
136 - objcpp_link_args = $(_meson_env_array "${BUILD_OBJCXXFLAGS} ${BUILD_LDFLAGS}")
137 + c_args = $(meson-array "${BUILD_CFLAGS} ${BUILD_CPPFLAGS}")
138 + c_link_args = $(meson-array "${BUILD_CFLAGS} ${BUILD_LDFLAGS}")
139 + cpp_args = $(meson-array "${BUILD_CXXFLAGS} ${BUILD_CPPFLAGS}")
140 + cpp_link_args = $(meson-array "${BUILD_CXXFLAGS} ${BUILD_LDFLAGS}")
141 + fortran_args = $(meson-array "${BUILD_FCFLAGS}")
142 + fortran_link_args = $(meson-array "${BUILD_FCFLAGS} ${BUILD_LDFLAGS}")
143 + objc_args = $(meson-array "${BUILD_OBJCFLAGS} ${BUILD_CPPFLAGS}")
144 + objc_link_args = $(meson-array "${BUILD_OBJCFLAGS} ${BUILD_LDFLAGS}")
145 + objcpp_args = $(meson-array "${BUILD_OBJCXXFLAGS} ${BUILD_CPPFLAGS}")
146 + objcpp_link_args = $(meson-array "${BUILD_OBJCXXFLAGS} ${BUILD_LDFLAGS}")
147 needs_exe_wrapper = false
148 pkg_config_libdir = '${BUILD_PKG_CONFIG_LIBDIR:-${EPREFIX}/usr/$(get_libdir)/pkgconfig}'
149
150 --
151 2.29.2

Replies

Subject Author
[gentoo-dev] Re: [PATCH 2/3] meson.eclass: use meson-array script James Le Cuirot <chewi@g.o>