+# Utility function to setup a current ninja build system.
+termux_setup_ninja() {
+ local NINJA_VERSION=1.8.2
+ local NINJA_FOLDER=$TERMUX_COMMON_CACHEDIR/ninja-$NINJA_VERSION
+ if [ ! -x $NINJA_FOLDER/ninja ]; then
+ mkdir -p $NINJA_FOLDER
+ local NINJA_ZIP_FILE=$TERMUX_PKG_TMPDIR/ninja-$NINJA_VERSION.zip
+ termux_download https://github.com/ninja-build/ninja/releases/download/v$NINJA_VERSION/ninja-linux.zip \
+ $NINJA_ZIP_FILE \
+ d2fea9ff33b3ef353161ed906f260d565ca55b8ca0568fa07b1d2cab90a84a07
+ unzip $NINJA_ZIP_FILE -d $NINJA_FOLDER
+ fi
+ export PATH=$NINJA_FOLDER:$PATH
+}
+
+# Utility function to setup a current meson build system.
+termux_setup_meson() {
+ termux_setup_ninja
+ local MESON_VERSION=0.43.0
+ local MESON_FOLDER=$TERMUX_COMMON_CACHEDIR/meson-$MESON_VERSION
+ if [ ! -d "$MESON_FOLDER" ]; then
+ local MESON_TAR_NAME=meson-$MESON_VERSION.tar.gz
+ local MESON_TAR_FILE=$TERMUX_PKG_TMPDIR/$MESON_TAR_NAME
+ termux_download \
+ https://github.com/mesonbuild/meson/releases/download/$MESON_VERSION/meson-$MESON_VERSION.tar.gz \
+ $MESON_TAR_FILE \
+ c513eca90e0d70bf14cd1eaafea2fa91cf40a73326a7ff61f08a005048057340
+ tar xf "$MESON_TAR_FILE" -C "$TERMUX_COMMON_CACHEDIR"
+ (cd $MESON_FOLDER && patch -p1 < $TERMUX_SCRIPTDIR/scripts/meson-android.patch)
+ fi
+ TERMUX_MESON="$MESON_FOLDER/meson.py"
+ TERMUX_MESON_CROSSFILE=$TERMUX_COMMON_CACHEDIR/meson-crossfile-$TERMUX_ARCH-v2.txt
+ if [ ! -f $TERMUX_MESON_CROSSFILE ]; then
+ local MESON_CPU MESON_CPU_FAMILY
+ if [ $TERMUX_ARCH = "arm" ]; then
+ MESON_CPU_FAMILY="arm"
+ MESON_CPU="armv7"
+ elif [ $TERMUX_ARCH = "i686" ]; then
+ MESON_CPU_FAMILY="x86"
+ MESON_CPU="i686"
+ elif [ $TERMUX_ARCH = "x86_64" ]; then
+ MESON_CPU_FAMILY="x86_64"
+ MESON_CPU="x86_64"
+ elif [ $TERMUX_ARCH = "aarch64" ]; then
+ MESON_CPU_FAMILY="arm"
+ MESON_CPU="aarch64"
+ else
+ termux_error_exit "Unsupported arch: $TERMUX_ARCH"
+ fi
+
+ cat > $TERMUX_MESON_CROSSFILE <<-HERE
+ [binaries]
+ ar = '$AR'
+ c = '$CC'
+ cpp = '$CXX'
+ ld = '$LD'
+ pkgconfig = '$PKG_CONFIG'
+ strip = '$STRIP'
+ [properties]
+ needs_exe_wrapper = true
+ [host_machine]
+ cpu_family = '$MESON_CPU_FAMILY'
+ cpu = '$MESON_CPU'
+ endian = 'little'
+ system = 'android'
+ HERE
+ fi
+}
+
+# Utility function to setup a current cmake build system