# Template file for 'amdvlk'
pkgname=amdvlk
version=2020.Q2.3
revision=1
_llpc_commit=61b5d58e8891dc37e473064d429f0496d5254e52
_xgl_commit=877b773000248dffa025c42d9c4074d1a07b9e47
_pal_commit=a83f67db9f0d2f16bbc698aeefa9c5e9476c993a
_llvm_project_commit=53692d985a53a336e07907c2d4b86bf2deb66908
_spvgen_commit=d4817ab957f79762da83b7fc1d3f2816dbdc13fd
_MetroHash_commit=2b6fee002db6cc92345b02aeee963ebaaf4c0e2f
_CWPack_commit=b601c88aeca7a7b08becb3d32709de383c8ee428
archs="i686* x86_64*"
create_wrksrc=yes
build_wrksrc="xgl"
build_style=cmake
configure_args="-DBUILD_WAYLAND_SUPPORT=ON
 -DXGL_METROHASH_PATH=../../metrohash
 -DXGL_CWPACK_PATH=../../cwpack"
hostmakedepends="pkg-config python3 perl"
makedepends="libxml2-devel xorg-server-devel libXrandr-devel libffi-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-project/archive/${_llvm_project_commit}.tar.gz
 https://github.com/GPUOpen-Drivers/spvgen/archive/${_spvgen_commit}.tar.gz
 https://github.com/GPUOpen-Drivers/MetroHash/archive/${_MetroHash_commit}.tar.gz
 https://github.com/GPUOpen-Drivers/CWPack/archive/${_CWPack_commit}.tar.gz"
checksum="3c0bf95b11bb38fbc8aa3cf620c07117473ca8f99e0c1534db4fa5ae03b8a9ac
 419869a796b0c75e06f477d388d3755c5632bda52843059e46977c625146bd95
 90e97318fc56a90799d0434a88e3cf70b60f53fae7399ddafa9baeadee75ff26
 274ef004dda749dd8deec94436c1f34bba9e0a866fbbce8dbcb2be999b386688
 4a37b7f827b42d8812a552cde3743d0e3220101a4f0c6679df65c4271d5783fd
 fc13a42980efc55ca6aec36bd60b5c621207468a0c5c22f44538260cf46542c5
 e8ecf026584dd953e39c3abba2eb04d28b28ed4577482ee70265f0d421fef398
 58ca397f33d62bcfecaecd89eb4ad466a6c33e1c619e5cf742822074f1f7d664"
nocross=yes
lib32files="/usr/share/vulkan/icd.d/amd_icd32.json"

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-project-${_llvm_project_commit} ${wrksrc}/llvm-project
	mv ${wrksrc}/spvgen-${_spvgen_commit} ${wrksrc}/spvgen
	mv ${wrksrc}/MetroHash-${_MetroHash_commit} ${wrksrc}/metrohash
	mv ${wrksrc}/CWPack-${_CWPack_commit} ${wrksrc}/cwpack
}

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}"
}

pre_build() {
	# lower burden on build servers, llvm eats too much memory
	if [ "$XBPS_MAKEJOBS" -gt 2 ]; then
		echo $XBPS_MAKEJOBS
		export makejobs="-j$(( $XBPS_MAKEJOBS / 2 ))"
		echo $XBPS_MAKEJOBS
	fi

}

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
}
