# Maintainer: Laurent Carlier # Contributor: lod pkgname=amdvlk pkgver=2023.Q2.1 pkgrel=1 pkgdesc="AMD's standalone Vulkan driver" arch=(x86_64) url="https://github.com/GPUOpen-Drivers" license=('MIT') provides=('vulkan-driver') makedepends=('perl-xml-xpath' 'python' 'wayland' 'libxrandr' 'xorg-server-devel' 'directx-shader-compiler' 'glslang' 'cmake' 'ninja' 'git') options=('!lto') source=("https://github.com/GPUOpen-Drivers/AMDVLK/archive/v-${pkgver}.tar.gz") sha256sums=('14ebcd71f8f2be44244abd2fe7ae9446b522105b88583b13ed763a41efb6cb14') prepare() { local nrepos path name revision nrepos=$(xpath -q -e //project AMDVLK-v-${pkgver}/default.xml | wc -l) while (($nrepos>0)) do path=$(xpath -q -e //project[$nrepos]/@path AMDVLK-v-${pkgver}/default.xml | sed 's/ path="drivers\/\(.*\)"/\1/g') name=$(xpath -q -e //project[$nrepos]/@name AMDVLK-v-${pkgver}/default.xml | sed 's/ name="\(.*\)"/\1/g') revision=$(xpath -q -e //project[$nrepos]/@revision AMDVLK-v-${pkgver}/default.xml | sed 's/ revision="\(.*\)"/\1/g') git clone --recurse-submodules https://github.com/GPUOpen-Drivers/$name $path pushd $path git checkout $revision git submodule update popd (( nrepos-- )) done } build() { cd ${srcdir}/xgl cmake -H. -Bbuilds/Release64 \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_WAYLAND_SUPPORT=On \ -G Ninja ninja -C builds/Release64 } package() { install -m755 -d "${pkgdir}"/usr/lib install -m755 -d "${pkgdir}"/usr/share/vulkan/icd.d install -m755 -d "${pkgdir}"/usr/share/vulkan/implicit_layer.d install -m755 -d "${pkgdir}"/usr/share/licenses/${pkgname} install xgl/builds/Release64/icd/amdvlk64.so "${pkgdir}"/usr/lib/ install xgl/builds/Release64/icd/amd_icd64.json "${pkgdir}"/usr/share/vulkan/icd.d/ install xgl/builds/Release64/icd/amd_icd64.json "${pkgdir}"/usr/share/vulkan/implicit_layer.d/ install AMDVLK-v-${pkgver}/LICENSE.txt "${pkgdir}"/usr/share/licenses/${pkgname}/ sed -i "s#/lib64#/lib#g" "${pkgdir}"/usr/share/vulkan/icd.d/amd_icd64.json sed -i "s#/lib64#/lib#g" "${pkgdir}"/usr/share/vulkan/implicit_layer.d/amd_icd64.json }