gnu: volk: Hard-code path of vulkan-loader for dynamic loading

Until now, we’d get:

  $ guix shell vulkan-tools -- vulkaninfo
  ERROR at /tmp/guix-build-vulkan-tools-1.3.280.0.drv-0/source/vulkaninfo/./vulkaninfo.h:412: Failed to initialize: Vulkan loader is not installed, not found, or failed to load.

This patch fixes it and potentially for other programs as well.

* gnu/packages/vulkan.scm (volk)[arguments]: use gexp.
<#:phases>: Patch dlopen with libvulkan.so.
[input]: Add vulkan-loader.

Change-Id: I5ef0eb13d35e517b8947faddace641882a775b80
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
This commit is contained in:
nathan 2024-06-01 19:55:24 -04:00 committed by John Kehayias
parent f0bf6994b0
commit 8a602183ff
No known key found for this signature in database
GPG key ID: 499097AE5EA815D9

View file

@ -654,9 +654,19 @@ (define-public volk
"0x4jhc8n9c4k8svmmcaxxs613xbsav7wam94gacddlm738cwp13v"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ;no test
#:configure-flags '("-DVOLK_INSTALL=ON" "-DVOLK_PULL_IN_VULKAN=ON")))
(inputs (list vulkan-headers))
(list
#:tests? #f ;no test
#:configure-flags #~(list "-DVOLK_INSTALL=ON" "-DVOLK_PULL_IN_VULKAN=ON")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-loader-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "volk.c"
(("dlopen\\(\"libvulkan.so")
(string-append "dlopen(\""
(search-input-file
inputs "/lib/libvulkan.so")))))))))
(inputs (list vulkan-headers vulkan-loader))
(synopsis "Meta loader for Vulkan API")
(description
"Volk is a meta-loader for Vulkan. It allows you to dynamically load