add package: zig

Signed-off-by: Leap of Azzam <leapofazzam@gmail.com>
This commit is contained in:
Leap of Azzam 2021-11-17 15:36:43 +07:00 committed by xtkoba
parent 33a64aabdb
commit 18fbc56c72
5 changed files with 85 additions and 0 deletions

View File

@ -67,6 +67,10 @@ source "$TERMUX_SCRIPTDIR/scripts/build/setup/termux_setup_golang.sh"
# shellcheck source=scripts/build/setup/termux_setup_rust.sh
source "$TERMUX_SCRIPTDIR/scripts/build/setup/termux_setup_rust.sh"
# Utility function for zig-using packages to setup a zig toolchain.
# shellcheck source=scripts/build/setup/termux_setup_zig.sh
source "$TERMUX_SCRIPTDIR/scripts/build/setup/termux_setup_zig.sh"
# Utility function to setup a current ninja build system.
# shellcheck source=scripts/build/setup/termux_setup_ninja.sh
source "$TERMUX_SCRIPTDIR/scripts/build/setup/termux_setup_ninja.sh"

23
packages/zig/build.sh Normal file
View File

@ -0,0 +1,23 @@
TERMUX_PKG_HOMEPAGE=https://ziglang.org
TERMUX_PKG_DESCRIPTION="General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software."
TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_MAINTAINER="@leapofazzam123"
TERMUX_PKG_VERSION=0.9.0
TERMUX_PKG_SRCURL=https://ziglang.org/download/$TERMUX_PKG_VERSION/zig-$TERMUX_PKG_VERSION.tar.xz
TERMUX_PKG_SHA256=cd1be83b12f8269cc5965e59877b49fdd8fa638efb6995ac61eb4cea36a2e381
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="libandroid-spawn, libc++, libxml2, ncurses, zlib"
TERMUX_PKG_BUILD_DEPENDS="llvm, libllvm-static"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
-DZIG_PREFER_CLANG_CPP_DYLIB=OFF
-DLLVM_LIBDIRS=$TERMUX_PREFIX/lib
"
termux_step_pre_configure() {
termux_setup_zig
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+="
-DZIG_EXECUTABLE=$(which zig)
-DZIG_TARGET_TRIPLE=$ZIG_TARGET_NAME
"
LDFLAGS+=" -landroid-spawn -lncursesw -lxml2 -lz"
}

View File

@ -0,0 +1,11 @@
--- a/cmake/Findllvm.cmake
+++ b/cmake/Findllvm.cmake
@@ -353,6 +353,8 @@
FIND_AND_ADD_LLVM_LIB(LLVMBinaryFormat)
FIND_AND_ADD_LLVM_LIB(LLVMSupport)
FIND_AND_ADD_LLVM_LIB(LLVMDemangle)
+ FIND_AND_ADD_LLVM_LIB(Polly)
+ FIND_AND_ADD_LLVM_LIB(PollyISL)
endif()
include(FindPackageHandleStandardArgs)

View File

@ -0,0 +1,44 @@
termux_setup_zig() {
local ZIG_VERSION=0.9.0
local ZIG_FOLDER
if [ "${TERMUX_PACKAGES_OFFLINE-false}" = "true" ]; then
ZIG_FOLDER=${TERMUX_SCRIPTDIR}/build-tools/zig-${ZIG_VERSION}
else
ZIG_FOLDER=${TERMUX_COMMON_CACHEDIR}/zig-${ZIG_VERSION}
fi
if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ]; then
if [ ! -x "$ZIG_FOLDER/zig" ]; then
mkdir -p "$ZIG_FOLDER"
local ZIG_TARBALL=$TERMUX_PKG_TMPDIR/zig-$ZIG_VERSION.zip
termux_download https://ziglang.org/download/$ZIG_VERSION/zig-linux-x86_64-$ZIG_VERSION.tar.xz \
"$ZIG_TARBALL" \
5c55344a877d557fb1b28939785474eb7f4f2f327aab55293998f501f7869fa6
tar xf "$ZIG_TARBALL" -C "$ZIG_FOLDER" --strip-components=1
fi
export PATH=$ZIG_FOLDER:$PATH
else
local ZIG_PKG_VERSION=$(bash -c ". $TERMUX_SCRIPTDIR/packages/zig/build.sh; echo \$TERMUX_PKG_VERSION")
if ([ ! -e "$TERMUX_BUILT_PACKAGES_DIRECTORY/zig" ] ||
[ "$(cat "$TERMUX_BUILT_PACKAGES_DIRECTORY/zig")" != "$ZIG_PKG_VERSION" ]) &&
[ "$(dpkg-query -W -f '${db:Status-Status}\n' zig 2>/dev/null)" != "installed" ]; then
echo "Package 'zig' is not installed."
echo "You can install it with"
echo
echo " pkg install zig"
echo
echo "or build it from source with"
echo
echo " ./build-package.sh zig"
echo
exit 1
fi
fi
if [ $TERMUX_ARCH = "i686" ]; then
ZIG_TARGET_NAME=i386-linux-android
else
ZIG_TARGET_NAME=$TERMUX_ARCH-linux-android
fi
}

View File

@ -47,6 +47,9 @@ mkdir -p "$TERMUX_PKG_TMPDIR"
#(. "$TERMUX_SCRIPTDIR"/scripts/build/setup/termux_setup_rust.sh
# termux_setup_rust
#)
(. "$TERMUX_SCRIPTDIR"/scripts/build/setup/termux_setup_zig.sh
termux_setup_zig
)
rm -rf "${TERMUX_PKG_TMPDIR}"
(test -d "$TERMUX_SCRIPTDIR"/build-tools/android-sdk && test -d "$TERMUX_SCRIPTDIR"/build-tools/android-ndk && exit 0
"$TERMUX_SCRIPTDIR"/scripts/setup-android-sdk.sh