aboutsummaryrefslogtreecommitdiffstats
path: root/community/nim/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/nim/APKBUILD')
-rw-r--r--community/nim/APKBUILD131
1 files changed, 131 insertions, 0 deletions
diff --git a/community/nim/APKBUILD b/community/nim/APKBUILD
new file mode 100644
index 00000000000..15c6ad24c35
--- /dev/null
+++ b/community/nim/APKBUILD
@@ -0,0 +1,131 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Contributor: Nicolas Lorin <androw95220@gmail.com>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+#
+# WARNING: There may be breakages!
+pkgname=nim
+pkgver=2.0.4
+pkgrel=0
+pkgdesc="A systems and applications programming language"
+url="https://nim-lang.org/"
+arch="all !s390x"
+license="MIT"
+depends="libucontext-dev" # used by nims compiler
+_gdb_depends="$pkgname gdb"
+makedepends="$_gdb_depends"
+checkdepends="
+ gc-dev
+ nodejs
+ pcre
+ sqlite-libs
+ valgrind
+ "
+provides="niminst=$pkgver-r$pkgrel" # backward compatibility (Alpine <3.20)
+subpackages="
+ $pkgname-dbg
+ $pkgname-gdb::noarch
+ $pkgname-dev
+ nimsuggest
+ "
+source="https://nim-lang.org/download/nim-$pkgver.tar.xz
+ niminst-fix-paths.patch
+ nim-config-fix-paths.patch
+ nim-gdb-fix-posix-and-sysroot.patch
+ nim-config-enable-ucontext.patch
+ "
+
+# Don't run tests on armhf and ppc64le, it'd take eternity...
+# Can't run tests on riscv64, no nodejs...
+# Temporarily allow textrels on riscv64
+case "$CARCH" in
+ armhf | ppc64le | riscv64) options="!check";;
+esac
+
+export NIMFLAGS="${NIMFLAGS-} ${JOBS:+"--parallelBuild:$JOBS"}"
+
+build() {
+ msg2 "Building nim csources..."
+ ./build.sh
+
+ msg2 "Building koch..."
+ ./bin/nim compile -d:release koch
+
+ msg2 "Building nim..."
+ ./koch boot -d:release
+
+ msg2 "Building tools..."
+ ./koch toolsNoExternal -d:release
+
+ msg2 "Building niminst..."
+ ./bin/nim compile -d:release tools/niminst/niminst.nim
+}
+
+check() {
+ # XXX: Some tests fail!
+ ./koch tests --pedantic --targets="c js" all || true
+}
+
+package() {
+ DESTDIR="$pkgdir" ./koch install /usr/bin
+
+ install -D -m 755 -t "$pkgdir"/usr/bin/ \
+ bin/nim-gdb \
+ bin/nim_dbg \
+ bin/nimgrep \
+ bin/nimpretty \
+ bin/nimsuggest \
+ bin/testament \
+ tools/niminst/niminst
+
+ install -D -m644 tools/debug/* -t "$pkgdir"/usr/lib/nim/tools/debug/
+
+ # This is imported from /usr/share/nimble/pkgs/nim-*/compiler/nimblecmd.nim.
+ mkdir -p "$pkgdir"/usr/share/nimble/pkgs/nim-$pkgver/dist
+ cp -r dist/checksums "$pkgdir"/usr/share/nimble/pkgs/nim-$pkgver/dist/
+
+ cd "$pkgdir"
+ rmdir usr/share/doc/nim
+ mkdir -p usr/include
+ local file; for file in usr/lib/nim/*.h; do
+ mv $file usr/include/
+ ln -s ../../include/${file##*/} usr/lib/nim/${file##*/}
+ done
+
+ # Fix wrong path for system.nim.
+ # https://github.com/nim-lang/Nim/issues/22369
+ ln -s . usr/lib/nim/lib
+}
+
+dbg() {
+ pkgdesc="$pkgdesc (debug build)"
+
+ amove usr/bin/nim_dbg
+}
+
+gdb() {
+ pkgdesc="$pkgdesc (gdb printers)"
+ depends="$_gdb_depends"
+
+ amove usr/bin/nim-gdb
+ amove usr/lib/nim/tools/debug
+}
+
+dev() {
+ pkgdesc="$pkgdesc (development files)"
+
+ amove usr/bin/testament
+}
+
+nimsuggest() {
+ pkgdesc="idetools for the nim language"
+
+ amove usr/bin/nimsuggest
+}
+
+sha512sums="
+1918b3d4a4fc02714677b2ca5051dc69e1d1daead2cf4dcc9b997076540d07d58ee4fe3049de86a37faa3143de1d3b95bedfa31f31d8463987bb267107459793 nim-2.0.4.tar.xz
+26eb35cdaae908c96c20889b3561d0fb7ef3f6bdfe0c582eaa6122c7982a032a3e50174175dfb67b919b9e38691849d87966a9c093677774491e32b49eed3c6b niminst-fix-paths.patch
+7667963a1f3370a7625c1ee6575239f20ea501b0ba8342f8dcea6020692411fc177e7f101edd81a48bb3885e1d1cbece2d6ecd1a4d7640f0f78de109a97eeea9 nim-config-fix-paths.patch
+4f94829c0e0692b5563f871779b53d3639ffe0926aaacfc54a346fbc56fdad999ddbbeda894f54a243ff21c05dbc29668b3ae93c01b319f573d1b585116e2334 nim-gdb-fix-posix-and-sysroot.patch
+4bff5b687fc4154a4b3c8e888e4fcdd2340acfcc87b1a5eeaa9feb173cadd6047bd73d68983461c1edcec232aca6014dbeab8efaedcf4d8a52662780de4b51d3 nim-config-enable-ucontext.patch
+"