# Template file for 'wasi-libc'
pkgname=wasi-libc
version=25
revision=2
_llvmver=19
hostmakedepends="clang${_llvmver} llvm${_llvmver}"
short_desc="WASI libc implementation for WebAssembly"
maintainer="Duncaen <duncaen@voidlinux.org>"
license="MIT, custom:Apache-2.0-with-llvm-exception"
homepage="https://github.com/WebAssembly/wasi-libc"
distfiles="https://github.com/WebAssembly/wasi-libc/archive/refs/tags/wasi-sdk-${version}.tar.gz"
checksum=42e6eb03fd097f8a0f76c0db3c6364b71c97bc11aedc3cd73266fad587a1ea11

nostrip=yes

post_patch() {
	# avoid building again at install step
	vsed -e 's/\(install:\) finish/\1/' -i Makefile
}

do_build() {
	# https://bugzilla.mozilla.org/show_bug.cgi?id=1773200#c4
	make ${makejobs} AR=llvm-ar CC=clang NM=llvm-nm BULK_MEMORY_SOURCES=
	make ${makejobs} AR=llvm-ar CC=clang NM=llvm-nm THREAD_MODEL=posix

	# new wasm targets needed by rust
	make ${makejobs} AR=llvm-ar CC=clang NM=llvm-nm TARGET_TRIPLE=wasm32-wasip1
	make ${makejobs} AR=llvm-ar CC=clang NM=llvm-nm TARGET_TRIPLE=wasm32-wasip1-threads THREAD_MODEL=posix
	make ${makejobs} AR=llvm-ar CC=clang NM=llvm-nm TARGET_TRIPLE=wasm32-wasip2 WASI_SNAPSHOT=p2
}

do_install() {
	make CC=clang INSTALL_DIR="${DESTDIR}/usr/share/wasi-sysroot" install
	vlicense LICENSE-MIT
	vlicense LICENSE-APACHE-LLVM
}
