gnu: mesa: Fix library paths in Vulkan layer manifests.

* gnu/packages/gl.scm (mesa): Fix library paths in Vulkan layer manifests.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This commit is contained in:
Kaelyn Takata 2023-05-04 20:12:26 +00:00 committed by Maxim Cournoyer
parent 4c3532d7ab
commit 61a3264424
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -17,6 +17,7 @@
;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
;;; Copyright © 2021, 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2023 Kaelyn Takata <kaelyn.alexi@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -488,7 +489,28 @@ (define-public mesa
file)
(symlink reference file)))
others))))
(delete-duplicates inodes))))))))
(delete-duplicates inodes)))))
(add-after 'install 'set-layer-path-in-manifests
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(implicit-path (string-append
out
"/share/vulkan/implicit_layer.d/"))
(explicit-path (string-append
out
"/share/vulkan/explicit_layer.d/"))
(fix-layer-path
(lambda (layer-name)
(let* ((explicit (string-append explicit-path layer-name ".json"))
(implicit (string-append implicit-path layer-name ".json"))
(manifest (if (file-exists? explicit)
explicit
implicit)))
(substitute* manifest
(((string-append "\"lib" layer-name ".so\""))
(string-append "\"" out "/lib/lib" layer-name ".so\"")))))))
(for-each fix-layer-path '("VkLayer_MESA_device_select"
"VkLayer_MESA_overlay"))))))))
(home-page "https://mesa3d.org/")
(synopsis "OpenGL and Vulkan implementations")
(description "Mesa is a free implementation of the OpenGL and Vulkan