# Contributor: Dennis Krupenik <dennis@krupenik.com>
# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
pkgname=spirv-llvm-translator
_pkgname=SPIRV-LLVM-Translator
pkgver=20.1.2
pkgrel=0
pkgdesc="Library for bi-directional translation between SPIR-V and LLVM IR"
url="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
arch="all"
license="NCSA"
_llvmver=${pkgver%%.*}
depends_dev="
	$pkgname=$pkgver-r$pkgrel
	llvm$_llvmver-dev
	spirv-tools-dev
	"
makedepends="
	$depends_dev
	clang$_llvmver
	cmake
	libxml2-dev
	llvm$_llvmver-static
	llvm$_llvmver-gtest
	samurai
	"
checkdepends="llvm$_llvmver-test-utils"
subpackages="$pkgname-dev $pkgname-libs"
source="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/v$pkgver/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
options="!check" # invalid files passed to lit?

case "$CARCH" in
x86_64) ;;
# Failing tests
*) options="!check";;
esac

build() {
	if [ "$CBUILD" != "$CHOST" ]; then
		cmake_crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
	fi
	CC=clang \
	CXX=clang++ \
	cmake -B build -G Ninja \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DBUILD_SHARED_LIBS=True \
		-DLLVM_SPIRV_INCLUDE_TESTS=1 \
		-DLLVM_EXTERNAL_LIT=/usr/lib/llvm$_llvmver/bin/lit \
		-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr/include/spirv \
		$cmake_crossopts
	cmake --build build
}

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

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

sha512sums="
ed417f822cbcf6d7f75711fe7294a945f71a454931b7871bfd0a697857f971da33fb570527c2db1b760bf7018194cc491385bfae7cb69a2757ee97909beb54b6  SPIRV-LLVM-Translator-20.1.2.tar.gz
"
