Gentoo Archives: gentoo-dev

From: William Hubbs <williamh@g.o>
To: gentoo-dev@l.g.o
Cc: William Hubbs <williamh@g.o>
Subject: [gentoo-dev] [PATCH v4] meson.eclass: several cleanups
Date: Tue, 24 Aug 2021 17:27:53
Message-Id: 20210824172732.27359-1-williamh@gentoo.org
1 Use the compile and install subcommands of meson instead of calling
2 ninja. This allows for the possibility of a different back end.
3
4 Stop using the NINJAOPTS variable.
5
6 Add --num-processes to "meson test" call regardless of whether MAKEOPTS
7 is set since the default is 1 process.
8 Signed-off-by: William Hubbs <williamh@g.o>
9 ---
10 eclass/meson.eclass | 21 ++++++++++++++-------
11 1 file changed, 14 insertions(+), 7 deletions(-)
12
13 diff --git a/eclass/meson.eclass b/eclass/meson.eclass
14 index 2a563e367c6..a14d7412b56 100644
15 --- a/eclass/meson.eclass
16 +++ b/eclass/meson.eclass
17 @@ -379,7 +379,13 @@ meson_src_configure() {
18 meson_src_compile() {
19 debug-print-function ${FUNCNAME} "$@"
20
21 - eninja -C "${BUILD_DIR}" "$@"
22 + local mesoncompileargs=(
23 + -C "${BUILD_DIR}"
24 + --jobs "$(makeopts_jobs "${MAKEOPTS}")"
25 + --load-average "$(makeopts_loadavg "${MAKEOPTS}" 0)"
26 + )
27 +
28 + meson compile "${mesoncompileargs[@]}" "$@" || die "compile failed"
29 }
30
31 # @FUNCTION: meson_src_test
32 @@ -391,11 +397,8 @@ meson_src_test() {
33
34 local mesontestargs=(
35 -C "${BUILD_DIR}"
36 + --num-processes "$(makeopts_jobs "${MAKEOPTS}" )"
37 )
38 - [[ -n ${NINJAOPTS} || -n ${MAKEOPTS} ]] &&
39 - mesontestargs+=(
40 - --num-processes "$(makeopts_jobs ${NINJAOPTS:-${MAKEOPTS}})"
41 - )
42
43 # Append additional arguments from ebuild
44 mesontestargs+=("${emesontestargs[@]}")
45 @@ -406,13 +409,17 @@ meson_src_test() {
46 }
47
48 # @FUNCTION: meson_src_install
49 -# @USAGE: [extra ninja install arguments]
50 +# @USAGE: [extra meson install arguments]
51 # @DESCRIPTION:
52 # This is the meson_src_install function.
53 meson_src_install() {
54 debug-print-function ${FUNCNAME} "$@"
55
56 - DESTDIR="${D}" eninja -C "${BUILD_DIR}" install "$@"
57 + local mesoninstallargs=(
58 + -C "${BUILD_DIR}"
59 + --destdir "${D}"
60 + )
61 + meson install "${mesoninstallargs[@]}" "$@"
62
63 pushd "${S}" > /dev/null || die
64 einstalldocs
65 --
66 2.31.1