gnu: wine-staging: Enable Vulkan support.

* gnu/packages/wine.scm (wine-staging)[inputs]: Add vulkan-icd-loader.
[arguments]: Don't inherit phases. Add 'hardcode-libvulkan-path phase.
This commit is contained in:
Rutger Helling 2018-01-31 09:34:47 +01:00
parent 8b9dbdf36f
commit 39b4744a07
No known key found for this signature in database
GPG Key ID: F3A727DB44FCCA36
1 changed files with 26 additions and 0 deletions

View File

@ -54,6 +54,7 @@
#:use-module (gnu packages scanner) #:use-module (gnu packages scanner)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages video) #:use-module (gnu packages video)
#:use-module (gnu packages vulkan)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (ice-9 match)) #:use-module (ice-9 match))
@ -227,7 +228,32 @@ integrate Windows applications into your desktop.")
"1pjaxj7h3q6y356np908fvsx0bf7yx5crqvgl4hza6gfssdmsr5r")))) "1pjaxj7h3q6y356np908fvsx0bf7yx5crqvgl4hza6gfssdmsr5r"))))
(inputs `(("gtk+", gtk+) (inputs `(("gtk+", gtk+)
("libva", libva) ("libva", libva)
("vulkan-icd-loader" ,vulkan-icd-loader)
,@(package-inputs wine))) ,@(package-inputs wine)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'hardcode-libvulkan-path
(lambda* (#:key outputs #:allow-other-keys)
(let* ((libvulkan (string-append (assoc-ref %build-inputs
"vulkan-icd-loader") "/lib/libvulkan.so")))
;; Hard-code the path to libvulkan.so.
(substitute* "dlls/vulkan/vulkan_thunks.c" (("libvulkan.so")
libvulkan))
#t)))
(add-after 'configure 'patch-dlopen-paths
;; Hardcode dlopened sonames to absolute paths.
(lambda _
(let* ((library-path (search-path-as-string->list
(getenv "LIBRARY_PATH")))
(find-so (lambda (soname)
(search-path library-path soname))))
(substitute* "include/config.h"
(("(#define SONAME_.* )\"(.*)\"" _ defso soname)
(format #f "~a\"~a\"" defso (find-so soname))))
#t))))
,@(strip-keyword-arguments '(#:phases)
(package-arguments wine))))
(synopsis "Implementation of the Windows API (staging branch, 32-bit only)") (synopsis "Implementation of the Windows API (staging branch, 32-bit only)")
(description "Wine-Staging is the testing area of Wine. It (description "Wine-Staging is the testing area of Wine. It
contains bug fixes and features, which have not been integrated into contains bug fixes and features, which have not been integrated into