This allows the buildtype option to be overridden or omitted.

This may be necessary if an ebuild makes use of the 'debug' built-in
option control project-specific debug functionality. meson emits a
warning if both buildtype and debug are specified, since the former
overrides the latter.

See discussion in https://github.com/gentoo/gentoo/pull/22574.

Signed-off-by: Mike Gilbert <flop...@gentoo.org>
---
 eclass/meson.eclass | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/eclass/meson.eclass b/eclass/meson.eclass
index 4ba364924e4..5fab2f8df6b 100644
--- a/eclass/meson.eclass
+++ b/eclass/meson.eclass
@@ -64,6 +64,11 @@ fi
 # Build directory, location where all generated files should be placed.
 # If this isn't set, it defaults to ${WORKDIR}/${P}-build.
 
+# @ECLASS-VARIABLE: EMESON_BUILDTYPE
+# @DESCRIPTION:
+# The buildtype value to pass to meson setup.
+: ${EMESON_BUILDTYPE=plain}
+
 # @ECLASS-VARIABLE: EMESON_SOURCE
 # @DEFAULT_UNSET
 # @DESCRIPTION:
@@ -310,7 +315,6 @@ meson_src_configure() {
 
        local mesonargs=(
                meson setup
-               --buildtype plain
                --libdir "$(get_libdir)"
                --localstatedir "${EPREFIX}/var/lib"
                --prefix "${EPREFIX}/usr"
@@ -321,6 +325,10 @@ meson_src_configure() {
                --native-file "$(_meson_create_native_file)"
        )
 
+       if [[ -n ${EMESON_BUILDTYPE} ]]; then
+               mesonargs+=( --buildtype "${EMESON_BUILDTYPE}" )
+       fi
+
        if tc-is-cross-compiler; then
                mesonargs+=( --cross-file "$(_meson_create_cross_file)" )
        fi
-- 
2.33.1


Reply via email to