# Template file for 'amdvlk'
pkgname=amdvlk
version=2019.Q3.2
revision=1
_llpc_commit=252b93409b7cc92dacf48a421b9aac2a77629381
_xgl_commit=2315f2a4de4df53eaa54b56e96332687ed12269f
_pal_commit=ffb21e86238819817075e252ad9b49ea5284968d
_llvm_commit=d9e4934189845f30428cad6da16e8745540291db
_spvgen_commit=051aaa46272aae7808129b98fd9da49f3229eb78
archs="i686* x86_64*"
create_wrksrc=yes
build_wrksrc="xgl"
build_style=cmake
configure_args="-DBUILD_WAYLAND_SUPPORT=ON"
hostmakedepends="pkg-config python3 perl"
makedepends="libxml2-devel xorg-server-devel libXrandr-devel"
depends="vulkan-loader"
short_desc="AMD Open Source Driver For Vulkan"
maintainer="John <johnz@posteo.net>"
license="MIT"
homepage="https://github.com/GPUOpen-Drivers/AMDVLK"
distfiles="https://github.com/GPUOpen-Drivers/AMDVLK/archive/v-${version}.tar.gz
 https://github.com/GPUOpen-Drivers/llpc/archive/${_llpc_commit}.tar.gz
 https://github.com/GPUOpen-Drivers/xgl/archive/${_xgl_commit}.tar.gz
 https://github.com/GPUOpen-Drivers/pal/archive/${_pal_commit}.tar.gz
 https://github.com/GPUOpen-Drivers/llvm/archive/${_llvm_commit}.tar.gz
 https://github.com/GPUOpen-Drivers/spvgen/archive/${_spvgen_commit}.tar.gz"
checksum="209f71acee66b1eaa4dc7f39cf2a0f3e349dfdedf5f4e1c2d29b217057323198
 eb0a94288e4bda889d75e287247e63b97a91d9761fb818c9106d4afa490760c3
 1b01201e15eb62ad3df8b925de5763484570a85a4cdf686efe066e26d0ca70c2
 d0b96d0b37ac24ada16fa030fe80070f39528f69df1c64c3474c3f58b98475ee
 a816af55d118d1ab3f96729c2401568e689190d10388aa4f067917061bbfd271
 6f1242b24197e8f6ff259371773bedcb858dec379eba32f07d150d6eb57e5a2b"
nocross=yes
lib32files="/usr/share/vulkan/icd.d/amd_icd32.json"

case $XBPS_TARGET_MACHINE in
	*-musl) makedepends+=" rand48_r-devel"
esac

post_extract() {
	mv ${wrksrc}/AMDVLK-v-${version} ${wrksrc}/AMDVLK
	mv ${wrksrc}/xgl-${_xgl_commit} ${wrksrc}/xgl
	mv ${wrksrc}/pal-${_pal_commit} ${wrksrc}/pal
	mv ${wrksrc}/llpc-${_llpc_commit} ${wrksrc}/llpc
	mv ${wrksrc}/llvm-${_llvm_commit} ${wrksrc}/llvm
	mv ${wrksrc}/spvgen-${_spvgen_commit} ${wrksrc}/spvgen
}

pre_configure() {
	case "$XBPS_TARGET_MACHINE" in
		i686*) _arch="X86";;
		x86_64*) _arch="X86";;
	esac
	configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
	configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}"
}

do_install() {
	case $XBPS_TARGET_MACHINE in
		i686*|mips*|arm*|ppc|ppc-musl)
			vinstall build/icd/amdvlk32.so 644 usr/lib/
			vinstall ${wrksrc}/AMDVLK/json/Redhat/amd_icd32.json 644 usr/share/vulkan/icd.d/
			vsed -i ${DESTDIR}/usr/share/vulkan/icd.d/amd_icd32.json -e 's#/usr/lib/#/usr/lib32/#g'
			;;
		*)
			vinstall build/icd/amdvlk64.so 644 usr/lib/
			vinstall ${wrksrc}/AMDVLK/json/Redhat/amd_icd64.json 644 usr/share/vulkan/icd.d/
			vsed -i ${DESTDIR}/usr/share/vulkan/icd.d/amd_icd64.json -e 's#/usr/lib64/#/usr/lib/#g'
			;;
	esac
	vlicense ${wrksrc}/AMDVLK/LICENSE.txt
}
