diff --git a/libfuse/tst-build.sh b/libfuse/tst-build.sh index be0f75f02690817b1be2e739d1c83b74084d9e08..c3dfd16314146f40a5c8ed1dfe53de2f37e33219 100755 --- a/libfuse/tst-build.sh +++ b/libfuse/tst-build.sh @@ -20,6 +20,7 @@ build_dep_pkg_list=" ninja-build python3 python3-devel + python3-pip python3-pytest python3-packaging python3-py @@ -27,6 +28,26 @@ build_dep_pkg_list=" pkgconf-pkg-config " +ensure_meson_version() { + local required="0.60.0" + local current + current=$(meson --version 2>/dev/null || echo "0.0.0") + + if printf '%s\n%s\n' "$required" "$current" | sort -V | head -n1 | grep -qx "$required"; then + echo "meson version $current >= $required, OK" + return 0 + fi + + echo "meson version $current < $required, installing via pip..." + pip3 install -i https://mirrors.tencent.com/pypi/simple/ \ + --trusted-host mirrors.tencent.com \ + "meson>=$required" || return 1 + + hash -r + current=$(meson --version 2>/dev/null || echo "0.0.0") + echo "meson upgraded to $current via pip" +} + build_tool() { cp -r "$g_tool_dir" "$g_install_dir" && cd "$g_install_dir/libfuse" || return 1 @@ -76,6 +97,8 @@ main() { rpm -q "$pkg" || yum install -y "$pkg" done + ensure_meson_version || return 1 + mkdir -p "$g_install_dir" if build_tool; then echo "build $g_tool_dir success, dir $g_install_dir"