# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=libclc
# follow llvm versioning
pkgver=19.1.4
pkgrel=0
_llvmver=${pkgver%%.*}
pkgdesc="Open source implementation of the library requirements of the OpenCL C programming language"
url="https://libclc.llvm.org/"
arch="all"
license="Apache-2.0 WITH LLVM-exception"
depends_dev="$pkgname=$pkgver-r$pkgrel"
makedepends="
	clang$_llvmver
	cmake
	llvm$_llvmver-dev
	llvm$_llvmver-static
	llvm$_llvmver-gtest
	samurai
	spirv-llvm-translator-dev
	"
checkdepends="llvm$_llvmver-test-utils"
subpackages="$pkgname-dev"
source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/libclc-$pkgver.src.tar.xz
	https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/cmake-$pkgver.src.tar.xz
	"
builddir="$srcdir/libclc-$pkgver.src"

build() {
	CC=clang-$_llvmver \
	CXX=clang++-$_llvmver \
	cmake -B build -G Ninja \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DLIBCLC_TARGETS_TO_BUILD="amdgcn--;amdgcn--amdhsa;amdgcn-mesa-mesa3d;r600--;nvptx--;nvptx64--;nvptx--nvidiacl;nvptx64--nvidiacl;spirv-mesa3d-;spirv64-mesa3d-" \
		-DLLVM_CONFIG="llvm-config-$_llvmver" \
		-DLLVM_SPIRV=/usr/bin/llvm-spirv \
		-DCMAKE_MODULE_PATH="$srcdir/cmake-$pkgver.src/Modules"
	cmake --build build
}

check() {
	cmake --build build --target test
}

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

sha512sums="
10beb8ac1b3dbd27889d4a0dca46399a71614e85dd3842445a8a77783e56a76cd2ffdb4522e82b41c7506bff8f35d165b6545698556e42cc3d8395b5f697e2c6  libclc-19.1.4.src.tar.xz
4b2b4a3bd9e120a42e6a5f73c7d1fa7c806594d0856c51934063e585509c23897dd5c6ffb334c6773e6a5f57f7791490a620317f029566a62faa69c312ec02ce  cmake-19.1.4.src.tar.xz
"
