~ruther/guix-local

8a602183ff40c02a88f5791427a93bf72b6463f0 — nathan 2 years ago f0bf699
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>
1 files changed, 13 insertions(+), 3 deletions(-)

M gnu/packages/vulkan.scm
M gnu/packages/vulkan.scm => gnu/packages/vulkan.scm +13 -3
@@ 654,9 654,19 @@ use the Vulkan API.")
                "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