Browse Source
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 lineandroid-5
Kieran Coldron
6 years ago
committed by
Fredrik Fornwall
4 changed files with 98 additions and 0 deletions
@ -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/ |
||||
|
} |
@ -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" |
@ -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." |
@ -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