configure: bump Meson to 1.9.0 for use with Rust

Meson 1.9.0 provides mixed linking of Rust and C objects.  As a side effect,
this also allows adding dependencies with "sources: ..." files to Rust crates
that use structured_sources().

It can also clean up up the meson.build files for Rust noticeably, but due
to an issue with doctests (see https://github.com/mesonbuild/meson/pull/14973)
that will have to wait for 1.9.1.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Link: https://lore.kernel.org/r/20250908105005.2119297-3-pbonzini@redhat.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

xemu: Update minimum Meson requirement to 1.8.4 to facilitate building on
macOS with Clang 17.
Fixes #2442
This commit is contained in:
Paolo Bonzini
2025-09-08 12:49:34 +02:00
committed by mborgerson
parent c700b2a647
commit ff1617d664
4 changed files with 17 additions and 3 deletions

10
configure vendored
View File

@ -1194,6 +1194,16 @@ fi
##########################################
# detect rust triple
meson_version=$($meson --version)
if test "$rust" != disabled && ! version_ge "$meson_version" 1.9.0; then
if test "$rust" = enabled; then
$mkvenv ensuregroup --dir "${source_path}/python/wheels" \
${source_path}/pythondeps.toml meson-rust || exit 1
else
echo "Rust needs Meson 1.9.0, disabling" 2>&1
rust=disabled
fi
fi
if test "$rust" != disabled && has "$rustc" && $rustc -vV > "${TMPDIR1}/${TMPB}.out"; then
rust_host_triple=$(sed -n 's/^host: //p' "${TMPDIR1}/${TMPB}.out")
else

View File

@ -41,8 +41,8 @@ def main() -> int:
parser.parse_args()
packages = {
"meson==1.5.0":
"52b34f4903b882df52ad0d533146d4b992c018ea77399f825579737672ae7b20",
"meson==1.9.0":
"45e51ddc41e37d961582d06e78c48e0f9039011587f3495c4d6b0781dad92357",
}
vendor_dir = Path(__file__, "..", "..", "wheels").resolve()

Binary file not shown.

View File

@ -19,9 +19,13 @@
[meson]
# The install key should match the version in python/wheels/
meson = { accepted = ">=1.5.0", installed = "1.5.0", canary = "meson" }
meson = { accepted = ">=1.8.4", installed = "1.9.0", canary = "meson" }
pycotap = { accepted = ">=1.1.0", installed = "1.3.1" }
[meson-rust]
# The install key should match the version in python/wheels/
meson = { accepted = ">=1.9.0", installed = "1.9.0", canary = "meson" }
[docs]
# Please keep the installed versions in sync with docs/requirements.txt
sphinx = { accepted = ">=3.4.3", installed = "5.3.0", canary = "sphinx-build" }