# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
pkgname=simdutf
pkgver=9.0.0
pkgrel=0
pkgdesc="Unicode validation and transcoding at billions of characters per second"
url="https://simdutf.github.io/simdutf/"
arch="all"
_llvmver=21
makedepends="
	cmake
	samurai
	"
license="Apache-2.0 OR MIT"
subpackages="
	$pkgname-dev
	$pkgname-doc
	fastbase64
	sutf
	"
source="https://github.com/simdutf/simdutf/archive/v$pkgver/simdutf-$pkgver.tar.gz
	"

case "$CARCH" in
	loongarch64)
		# lasx impl fails on gcc with https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65873
		makedepends="$makedepends clang$_llvmver"
		export CC="clang-$_llvmver"
		export CXX="clang++-$_llvmver"
		export CXXFLAGS="$CXXFLAGS -mlasx -mlsx"
		;;
	*) ;;
esac

build() {
	if [ "$CBUILD" != "$CHOST" ]; then
		local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
	fi
	cmake -B build -G Ninja \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DBUILD_SHARED_LIBS=ON \
		-DCMAKE_BUILD_TYPE=Release \
		-DSIMDUTF_CXX_STANDARD=20 \
		$crossopts
	cmake --build build
}

check() {
	ctest --test-dir build
}

package() {
	DESTDIR="$pkgdir" cmake --install build

	install -Dm644 LICENSE-MIT -t "$pkgdir"/usr/share/licenses/$pkgname/
}

fastbase64() {
	amove usr/bin/fastbase64
	amove usr/bin/fastbase64.coreutils
}

sutf() {
	amove usr/bin/sutf
}

sha512sums="
0c74226247cbe95368efa87ab84f5217485f16bcdf7a9def8741c6086cb86e6c378f0c437030d2be0934726e3ea9c28b5df2e593d0c654c78291c455a8d1e103  simdutf-9.0.0.tar.gz
"
