Use the compile and install subcommands of meson instead of calling
ninja. This allows for the possibility of a different back end.

Signed-off-by: William Hubbs <willi...@gentoo.org>
---
 eclass/meson.eclass | 22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

diff --git a/eclass/meson.eclass b/eclass/meson.eclass
index 2a563e367c6..0bc74012fb1 100644
--- a/eclass/meson.eclass
+++ b/eclass/meson.eclass
@@ -379,7 +379,19 @@ meson_src_configure() {
 meson_src_compile() {
        debug-print-function ${FUNCNAME} "$@"
 
-       eninja -C "${BUILD_DIR}" "$@"
+       local mesoncompileargs=(
+               -C "${BUILD_DIR}"
+       )
+       # use NINJAOPTS before MAKEOPTS for consistency with meson_src_test
+       local options="${NINJAOPTS:-${MAKEOPTS}}"
+       if [[ -n ${options} ]]; then
+               mesoncompileargs+=(
+                       --jobs "$(makeopts_jobs ${options})"
+                       --load-average "$(makeopts_loadavg ${options})"
+               )
+       fi
+
+       meson compile "${mesoncompileargs[@]}" "$@" || die "compile failed"
 }
 
 # @FUNCTION: meson_src_test
@@ -406,13 +418,17 @@ meson_src_test() {
 }
 
 # @FUNCTION: meson_src_install
-# @USAGE: [extra ninja install arguments]
+# @USAGE: [extra meson install arguments]
 # @DESCRIPTION:
 # This is the meson_src_install function.
 meson_src_install() {
        debug-print-function ${FUNCNAME} "$@"
 
-       DESTDIR="${D}" eninja -C "${BUILD_DIR}" install "$@"
+       local mesoninstallargs=(
+               -C "${BUILD_DIR}" "$@"
+               --destdir "${D}"
+       )
+       meson install "${mesoninstallargs[@]}" "$@"
 
        pushd "${S}" > /dev/null || die
        einstalldocs
-- 
2.31.1


Reply via email to