Add package: nim
Co-Authored-By: Epictek <kieran@coldron.com> Update packages/nim/build.sh Co-Authored-By: Epictek <kieran@coldron.com> Update packages/nim/build.sh Co-Authored-By: Epictek <kieran@coldron.com> Remove duplicated line
This commit is contained in:
parent
5b3698e320
commit
94d1104569
54
packages/nim/build.sh
Normal file
54
packages/nim/build.sh
Normal file
@ -0,0 +1,54 @@
|
||||
TERMUX_PKG_HOMEPAGE=https://nim-lang.org/
|
||||
TERMUX_PKG_DESCRIPTION="Nim programming language compiler"
|
||||
TERMUX_PKG_VERSION=0.19.0
|
||||
TERMUX_PKG_SRCURL=https://nim-lang.org/download/nim-$TERMUX_PKG_VERSION.tar.xz
|
||||
TERMUX_PKG_SHA256=a1996347253c590de42f6e36e33bd1d5ec7479c0aa013769b92deef802df3c2e
|
||||
TERMUX_PKG_HOSTBUILD=yes
|
||||
TERMUX_PKG_BUILD_IN_SRC=yes
|
||||
TERMUX_PKG_DEPENDS="git, clang, libandroid-glob"
|
||||
|
||||
termux_step_host_build() {
|
||||
cp ../src/* -r ./
|
||||
make -j $TERMUX_MAKE_PROCESSES CC=gcc LD=gcc
|
||||
}
|
||||
|
||||
termux_step_make() {
|
||||
if [ $TERMUX_ARCH = "x86_64" ]; then
|
||||
export NIM_ARCH=amd64
|
||||
elif [ $TERMUX_ARCH = "i686" ]; then
|
||||
export NIM_ARCH=i386
|
||||
elif [ $TERMUX_ARCH = "aarch64" ]; then
|
||||
# -Oz breaks aarch64 build
|
||||
CFLAGS+=" -Os"
|
||||
export NIM_ARCH=arm64
|
||||
else
|
||||
export NIM_ARCH=arm
|
||||
fi
|
||||
LDFLAGS+=" -landroid-glob"
|
||||
sed -i "s%\@CC\@%${CC}%g" config/nim.cfg
|
||||
sed -i "s%\@CFLAGS\@%${CFLAGS}%g" config/nim.cfg
|
||||
sed -i "s%\@LDFLAGS\@%${LDFLAGS}%g" config/nim.cfg
|
||||
sed -i "s%\@CPPFLAGS\@%${CPPFLAGS}%g" config/nim.cfg
|
||||
|
||||
find -name "stdlib_osproc.c" | xargs -n 1 sed -i 's',"/system/bin/sh\"\,\ 14","/data/data/com.termux/files/usr/bin/sh\"\,\ 38",'g'
|
||||
PATH=$TERMUX_PKG_HOSTBUILD_DIR/bin:$PATH
|
||||
|
||||
if [ $NIM_ARCH = "amd64" ]; then
|
||||
sed -i 's/arm64/amd64/g' makefile
|
||||
fi
|
||||
export CFLAGS=" $CPPFLAGS $CFLAGS -w -fno-strict-aliasing"
|
||||
make LD=$CC uos=linux mycpu=$NIM_ARCH myos=android -j $TERMUX_MAKE_PROCESSES useShPath=$TERMUX_PREFIX/bin/sh
|
||||
cp config/nim.cfg ../host-build/config
|
||||
|
||||
nim --opt:size --define:termux -d:release --os:android --cpu:$NIM_ARCH -t:-I/data/data/com.termux/files/usr/include -l:"-L/data/data/com.termux/files/usr/lib -landroid-glob" c koch.nim
|
||||
cd dist/nimble/src
|
||||
nim --define:termux -d:release --os:android --cpu:$NIM_ARCH -t:-I/data/data/com.termux/files/usr/include -l:"-L/data/data/com.termux/files/usr/lib -landroid-glob" c nimble.nim
|
||||
}
|
||||
termux_step_make_install() {
|
||||
./install.sh $TERMUX_PREFIX/lib
|
||||
cp koch $TERMUX_PREFIX/lib/nim/bin
|
||||
cp dist/nimble/src/nimble $TERMUX_PREFIX/lib/nim/bin
|
||||
ln -sf $TERMUX_PREFIX/lib/nim/bin/nim $TERMUX_PREFIX/bin/
|
||||
ln -sf $TERMUX_PREFIX/lib/nim/bin/koch $TERMUX_PREFIX/bin/
|
||||
ln -sf $TERMUX_PREFIX/lib/nim/bin/nimble $TERMUX_PREFIX/bin/
|
||||
}
|
22
packages/nim/installer.ini.patch
Normal file
22
packages/nim/installer.ini.patch
Normal file
@ -0,0 +1,22 @@
|
||||
--- ./compiler/installer.a.ini 2018-11-20 22:15:41.349488361 +0000
|
||||
+++ ./compiler/installer.ini 2018-11-20 22:14:38.431003964 +0000
|
||||
@@ -5,17 +5,8 @@
|
||||
Name: "Nim"
|
||||
Version: "$version"
|
||||
Platforms: """
|
||||
- windows: i386;amd64
|
||||
- linux: i386;amd64;powerpc64;arm;sparc;mips;mipsel;mips64;mips64el;powerpc;powerpc64el;arm64;riscv64
|
||||
- macosx: i386;amd64;powerpc64
|
||||
- solaris: i386;amd64;sparc;sparc64
|
||||
- freebsd: i386;amd64
|
||||
- netbsd: i386;amd64
|
||||
- openbsd: i386;amd64
|
||||
- dragonfly: i386;amd64
|
||||
- haiku: i386;amd64
|
||||
- android: i386;arm;arm64
|
||||
- nintendoswitch: arm64
|
||||
+ linux: i386;amd64;arm;arm64
|
||||
+ android: i386;amd64;arm;arm64
|
||||
"""
|
||||
|
||||
Authors: "Andreas Rumpf"
|
11
packages/nim/osproc.nim.patch
Normal file
11
packages/nim/osproc.nim.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- ./lib/pure/osproc.a.nim 2018-11-20 22:10:39.892888610 +0000
|
||||
+++ ./lib/pure/osproc.nim 2018-11-20 22:11:48.031167863 +0000
|
||||
@@ -792,7 +792,7 @@
|
||||
if poEvalCommand in options:
|
||||
const useShPath {.strdefine.} =
|
||||
when not defined(android): "/bin/sh"
|
||||
- else: "/system/bin/sh"
|
||||
+ else: "@TERMUX_PREFIX@/bin/sh"
|
||||
sysCommand = useShPath
|
||||
sysArgsRaw = @[sysCommand, "-c", command]
|
||||
assert args.len == 0, "`args` has to be empty when using poEvalCommand."
|
11
packages/nim/posix.nim.patch.beforehostbuild
Normal file
11
packages/nim/posix.nim.patch.beforehostbuild
Normal file
@ -0,0 +1,11 @@
|
||||
--- ./lib/posix/posix.a.nim 2018-11-20 22:08:36.965187234 +0000
|
||||
+++ ./lib/posix/posix.nim 2018-11-20 22:07:25.911639450 +0000
|
||||
@@ -92,7 +92,7 @@
|
||||
|
||||
# Platform specific stuff
|
||||
|
||||
-when defined(linux) and defined(amd64):
|
||||
+when defined(linux) and defined(amd64) and not defined(android):
|
||||
include posix_linux_amd64
|
||||
elif defined(nintendoswitch):
|
||||
include posix_nintendoswitch
|
Loading…
Reference in New Issue
Block a user