# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
#
# WARNING: Coroutines does not work and there may be more breakages!
setvar pkgname = 'nim'
setvar pkgver = '0.17.0'
setvar pkgrel = '0'
setvar pkgdesc = ""A systems and applications programming language""
setvar url = ""https://nim-lang.org/""
setvar arch = ""all""
setvar license = ""MIT""
setvar checkdepends = ""sqlite-libs nodejs""
setvar subpackages = ""$pkgname-doc nimsuggest niminst""
setvar source = ""https://nim-lang.org/download/$pkgname-$pkgver.tar.xz
	$pkgname-csources-$pkgver.tar.gz::https://github.com/nim-lang/csources/archive/v$pkgver.tar.gz
	niminst-fix-paths.patch
	nim-config-fix-paths.patch""
setvar builddir = ""$srcdir/$pkgname-$pkgver""

# Don't run tests on armhf, it'd take eternity...
case (CARCH) {
	armhf { setvar options = ""!check""}
}

proc prepare {
	mv "$srcdir"/csources-$pkgver "$builddir"/csources
	default_prepare
}

proc build {
	cd "$builddir"/csources

	msg2 "Building nim csources..."
	./build.sh

	cd ..

	msg2 "Building koch..."
	./bin/nim compile -d:release koch

	msg2 "Building nim..."
	./koch boot -d:release

	msg2 "Building nimsuggest..."
	./bin/nim compile -d:release nimsuggest/nimsuggest.nim
}

proc check {
	cd $builddir
	# XXX: Some tests fail!
	./koch tests --pedantic --targets="c js" all || true
}

proc package {
	cd $builddir"
	DESTDIR=$pkgdir" ./koch install /usr/bin

	cd $pkgdir
	mkdir -p usr/include
	local file; for file in usr/lib/nim/*.h {
		mv $file usr/include/
		ln -s ../../include/${file##*/} usr/lib/nim/${file##*/}
	}
}

proc nimsuggest {
	setvar pkgdesc = ""idetools for the nim language""

	install -D -m 755 "$builddir"/nimsuggest/nimsuggest \
		"$subpkgdir"/usr/bin/nimsuggest
}

proc niminst {
	setvar pkgdesc = ""A tool to generate an installer for a Nim program""

	install -D -m 755 "$builddir"/tools/niminst/niminst \
		"$subpkgdir"/usr/bin/niminst
}

setvar sha512sums = ""90d709b39746fac5582b9df69d3eb9e3b7a39563a98f7a3002f00716b936e4e0d2be47d8b877878318692e6e2b85c08077dfcc20d9059573a1967402c244894b  nim-0.17.0.tar.xz
fbf64d347e25da48d5237eef35209774f0e542975465c5d2cd98878f10ea0ab62ad1404758131543b8cf634afabc90d85e9e59dec96eae9bb60fffb88d204d92  nim-csources-0.17.0.tar.gz
4ab36c5d8772567ba09b536e3dd91ddcf253892056751318ccbfce7ac24f0a646bfcd94f5dadc823c9a8394bea9614fede20c1805638052ebdbe7b5bafba4f05  niminst-fix-paths.patch
813eb4cb93b0e9f12cb7666bef65c583390008ec09bc850f43f621688dc809bc51c105898095a8ef6316fbef49ac657a7abc75d74ad7b8cb3919c8f1a721af02  nim-config-fix-paths.patch""