From d74b08f37c131cd9c2020cbeebfdfe8c7f6d35fd Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Tue, 21 Feb 2023 12:41:44 +0700 Subject: [PATCH] chore(core): handle meson version 0.53.2 --- core/build.sh | 6 ++++++ core/commands.inc.sh | 36 +++++++++++++++++++++++++----------- 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/core/build.sh b/core/build.sh index fab558ad28..35baff488b 100755 --- a/core/build.sh +++ b/core/build.sh @@ -18,6 +18,12 @@ cd "$THIS_SCRIPT_PATH" get_builder_OS +MESON_LOW_VERSION=false + +if [[ `meson --version` < 0.54 ]]; then + MESON_LOW_VERSION=true +fi + # # Restrict available targets to those that can be built on the current system # diff --git a/core/commands.inc.sh b/core/commands.inc.sh index d5f48fd012..f09d899c6c 100644 --- a/core/commands.inc.sh +++ b/core/commands.inc.sh @@ -46,7 +46,13 @@ do_configure() { do_build() { local target=$1 builder_start_action build:$target || return 0 - meson compile -C "$MESON_PATH" + if $MESON_LOW_VERSION; then + pushd "$MESON_PATH" > /dev/null + ninja + popd + else + meson compile -C "$MESON_PATH" + fi builder_finish_action success build:$target } @@ -66,19 +72,27 @@ do_test() { # ---------------------------------------------------------------------------- do_install() { - do_command install $1 + local target=$1 + builder_start_action install:$target || return 0 + if $MESON_LOW_VERSION; then + pushd "$MESON_PATH" > /dev/null + ninja install + popd > /dev/null + else + meson install -C "$MESON_PATH" + fi + builder_finish_action success install:$target } do_uninstall() { - do_command uninstall $1 -} - -do_command() { - local command=$1 - local target=$2 - builder_start_action $command:$target || return 0 - meson $command -C "$MESON_PATH" - builder_finish_action success $command:$target + local target=$1 + builder_start_action uninstall:$target || return 0 + pushd "$MESON_PATH" > /dev/null + # Note: there is no meson uninstall command, which means + # this probably won't work on Windows + ninja uninstall + popd > /dev/null + builder_finish_action success uninsatll:$target } # ----------------------------------------------------------------------------