# Contributor: Jakob Meier <comcloudway@ccw.icu>
# Maintainer: Jakob Meier <comcloudway@ccw.icu>

pkgname=vlang
pkgver=0.4.10
# this has to be updated with the version
_vc_commit_sha="66ea39be2275ac723225b9ca99d51ec1212c640d"
pkgrel=0
pkgdesc="Simple, fast, safe, compiled language for developing maintainable software."
url="https://vlang.io"
arch="x86_64 aarch64 riscv64"
license="MIT"
# to be able to symlink /usr/lib/vlang/thirdparty/tcc/lib/libgc.a to /usr/lib/libgc.a
depends="gc-static"
makedepends="gcc gc-static libx11-dev"
source="
v-$pkgver.tar.gz::https://github.com/vlang/v/archive/refs/tags/$pkgver.tar.gz
vc-$pkgver.tar.gz::https://github.com/vlang/vc/archive/$_vc_commit_sha.tar.gz
"
builddir="$srcdir/v-$pkgver"
options="net"

build() {
	mv "../vc-$_vc_commit_sha" ./vc

	# cannot rely on prebuild tcc libgc.a
	# needs gc-dev
	mkdir -p thirdparty/tcc/lib
	ln -s /usr/lib/libgc.a thirdparty/tcc/lib/libgc.a

	gcc -std=gnu11 -w -o v1 vc/v.c -lm -lpthread
	./v1 -no-parallel -o v2 -prod cmd/v
	./v2 -o v -prod cmd/v
	rm -rf v1 v2

	./v run ./cmd/tools/detect_tcc.v

	VEXE=$builddir/v ./v build-tools -v
}

check() {
	./v self
}

package() {
	install -d $pkgdir/usr/lib/vlang $pkgdir/usr/share/vlang $pkgdir/usr/bin
	install -Dm644 LICENSE pkgdir/usr/share/licenses/$pkgname/LICENSE
	install -Dm755 v $pkgdir/usr/lib/vlang
	cp -a cmd $pkgdir/usr/lib/vlang/
	cp -a examples $pkgdir/usr/share/vlang/
	cp -a thirdparty $pkgdir/usr/lib/vlang/
	cp -a vlib $pkgdir/usr/lib/vlang/
	cp v.mod $pkgdir/usr/lib/vlang/
	ln -s /usr/lib/vlang/v $pkgdir/usr/bin/v

	touch $pkgdir/usr/lib/vlang/cmd/tools/.disable_autorecompilation
}
sha512sums="
02b355fd5e9cb6df8a2a60744b335b7932d3937c6244df6a249f79c82c0b6377ef6c2b21a9f8078277b99de1f1356ca06a36129770ab3b6880b2b32a9dd1499a  v-0.4.10.tar.gz
6f31789a8ef5e9d29f3ba745d363eefc8d9aa013beebb0c817eb089879413d033097541730ebbcb102a456f444539baa818ad81de8dc3b16e96e1710082c8275  vc-0.4.10.tar.gz
"
