This has been bothering me for a while. Meson will detect
find_program('python3') as the dummy shim in ${T} defined by the eclass,
and py.find_installation() may be the python that *Meson* was built
with. In DISTUTILS_USE_PEP517=meson-python a dedicated machine file is
created by the build backend but we should set this for other types of
package as well.

Signed-off-by: Eli Schwartz <eschwa...@gentoo.org>
---
 eclass/meson.eclass | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/eclass/meson.eclass b/eclass/meson.eclass
index a2bc5537e458..ab82234942d5 100644
--- a/eclass/meson.eclass
+++ b/eclass/meson.eclass
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Gentoo Authors
+# Copyright 2017-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: meson.eclass
@@ -224,7 +224,16 @@ _meson_create_native_file() {
        pkg-config = '$(tc-getBUILD_PKG_CONFIG)'
        strip = $(_meson_env_array "$(tc-getBUILD_STRIP)")
        windres = $(_meson_env_array "$(tc-getBUILD_PROG RC windres)")
+       EOF
+
+       if [[ -n ${EPYTHON} ]]; then
+               cat >> "${fn}" <<-EOF
+               python = '${EPREFIX}/usr/bin/${EPYTHON}'
+               python3 = '${EPREFIX}/usr/bin/${EPYTHON}'
+               EOF
+       fi
 
+       cat >> "${fn}" <<-EOF
        [built-in options]
        c_args = $(_meson_env_array "${BUILD_CFLAGS} ${BUILD_CPPFLAGS}")
        c_link_args = $(_meson_env_array "${BUILD_CFLAGS} ${BUILD_LDFLAGS}")
-- 
2.49.0


Reply via email to