# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=libclc
# follow llvm versioning
pkgver=20.1.8
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
	python3
	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="
0a98a8c1b9b87ba4ee9d1d23dfde108ff9ba57c3cc0cad14ca2feed5ea46d73596cb675d2adfd93faea854dcbae2f0626436355e2a40bc7ea10a96309b10650e  libclc-20.1.8.src.tar.xz
0ff6018c0753f208e990e45403c4ae5764a0ac83a8d80d8db7d3c7dbface14a7c8339893d8f757ff2d7b3662253ba356cf157ae7072a0be170a9dc028f4d7a74  cmake-20.1.8.src.tar.xz
"
