# Template file for 'odin'
pkgname=odin
version=2026.06
revision=1
_tag="dev-${version//./-}"
archs="x86_64"
hostmakedepends="clang llvm22 llvm22-devel make which"
makedepends="llvm22-devel"
checkdepends="python3"
depends="clang"
short_desc="Data-oriented programming language"
maintainer="Desolate"
license="BSD-3-Clause"
homepage="https://odin-lang.org/"
nostrip=yes
distfiles="https://github.com/odin-lang/Odin/archive/refs/tags/${_tag}.tar.gz"
checksum=9f91df15e06e782bdd2825926efc256ad1a79b3e022a1398e4e10dcc4d4d95fa
wrksrc="Odin-${_tag}"

do_build() {
	export CXX=clang++
	export LLVM_CONFIG=llvm-config
	make release

	make -C vendor/cgltf/src
	make -C vendor/miniaudio/src
	make -C vendor/stb/src
}

do_check() {
	./odin check examples/all -strict-style
	python3 tests/core/download_assets.py tests/core/assets
	./odin test tests/core/speed.odin -o:speed -file -all-packages
	./odin test tests/vendor -all-packages
	./odin test tests/internal -all-packages
}

do_install() {
	vmkdir usr/lib/odin
	vinstall odin 755 usr/lib/odin
	for d in base core shared vendor; do
		vcopy "$d" usr/lib/odin
	done

	# Create wrapper script to ensure ODIN_ROOT is set correctly
	cat > odin.sh <<EOF
#!/bin/sh
export ODIN_ROOT=/usr/lib/odin
exec /usr/lib/odin/odin "\$@"
EOF
	vbin odin.sh odin

	vlicense LICENSE
	vdoc PROPOSAL-PROCESS.md
	vdoc README.md
}
