mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-19 22:16:32 +01:00
gnu: mesa: Enable NVK driver for x86_64 architecture.
* gnu/packages/gl.scm (mesa)[native-inputs]: Add rust, rust-bindgen-cli, rust-cbindgen-0.26 for x86_64. [arguments]<#:meson>: Use newer version of meson to satisfy NVK build requirements. <#:configure-flags>: Use "auto" for 'vulkan-drivers' flag when target arch is x86_64. <#:phases>: Add 'patch-subproject-sources phase to patch rust subproject sources when target arch is x86_64. * gnu/packages/crates-io.scm (rust-paste-1, rust-proc-macro2-1, rust-quote-1, rust-syn-2, rust-unicode-ident-1): Add a comment about being dependencies of mesa. Change-Id: I76e3db5072ca3c718155b188ca64b52766d55f36 Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
This commit is contained in:
parent
f0dbb3d39c
commit
6832edf804
2 changed files with 67 additions and 2 deletions
|
@ -51869,6 +51869,7 @@ (define-public rust-password-hash-0.2
|
|||
("rust-subtle" ,rust-subtle-2)
|
||||
("rust-rand-core" ,rust-rand-core-0.6))))))
|
||||
|
||||
;; WARNING: This package is a dependency of mesa.
|
||||
(define-public rust-paste-1
|
||||
(package
|
||||
(name "rust-paste")
|
||||
|
@ -56703,6 +56704,7 @@ (define-public rust-proc-macro-nested-0.1
|
|||
"Support for nested proc-macro-hack invocations.")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
;; WARNING: This package is a dependency of mesa.
|
||||
(define-public rust-proc-macro2-1
|
||||
(package
|
||||
(name "rust-proc-macro2")
|
||||
|
@ -60144,6 +60146,7 @@ (define-public rust-quinn-udp-0.1
|
|||
("rust-tokio" ,rust-tokio-1)
|
||||
("rust-tracing" ,rust-tracing-0.1))))))
|
||||
|
||||
;; WARNING: This package is a dependency of mesa.
|
||||
(define-public rust-quote-1
|
||||
(package
|
||||
(name "rust-quote")
|
||||
|
@ -76953,6 +76956,7 @@ (define-public rust-symphonia-utils-xiph-0.4
|
|||
codecs and formats.")
|
||||
(license license:mpl2.0)))
|
||||
|
||||
;; WARNING: This package is a dependency of mesa.
|
||||
(define-public rust-syn-2
|
||||
(package
|
||||
(name "rust-syn")
|
||||
|
@ -86613,6 +86617,7 @@ (define-public rust-unicode-id-0.3
|
|||
according to Unicode Standard Annex #31.")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
;; WARNING: This package is a dependency of mesa.
|
||||
(define-public rust-unicode-ident-1
|
||||
(package
|
||||
(name "rust-unicode-ident")
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
;;; Copyright © 2024 Liliana Marie Prikler <liliana.prikler@gmail.com>
|
||||
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
|
||||
;;; Copyright © 2024 Arnaud Lechevallier <arnaud.lechevallier@free.fr>
|
||||
;;; Copyright © 2024 aurtzy <aurtzy@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -42,6 +43,7 @@ (define-module (gnu packages gl)
|
|||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages build-tools)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages documentation)
|
||||
|
@ -57,6 +59,7 @@ (define-module (gnu packages gl)
|
|||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages rust)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages vulkan)
|
||||
|
@ -76,7 +79,8 @@ (define-module (gnu packages gl)
|
|||
#:use-module (guix gexp)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module ((srfi srfi-1) #:hide (zip)))
|
||||
#:use-module ((srfi srfi-1) #:hide (zip))
|
||||
#:use-module (srfi srfi-26))
|
||||
|
||||
(define-public glu
|
||||
(package
|
||||
|
@ -357,10 +361,19 @@ (define-public mesa
|
|||
pkg-config-for-build
|
||||
wayland
|
||||
wayland-protocols)
|
||||
'())
|
||||
(if (target-x86-64?)
|
||||
;; NVK dependencies
|
||||
(list rust
|
||||
(module-ref (resolve-interface '(gnu packages rust-apps))
|
||||
'rust-bindgen-cli)
|
||||
(module-ref (resolve-interface '(gnu packages rust-apps))
|
||||
'rust-cbindgen-0.26))
|
||||
'())))
|
||||
(outputs '("out" "bin"))
|
||||
(arguments
|
||||
(list
|
||||
#:meson meson-1.5
|
||||
#:configure-flags
|
||||
#~(list
|
||||
#$@(cond
|
||||
|
@ -392,7 +405,7 @@ (define-public mesa
|
|||
"-Dshared-glapi=enabled"
|
||||
|
||||
#$@(cond
|
||||
((or (target-x86-32?) (target-x86-64?))
|
||||
((target-x86-32?)
|
||||
;; This doesn't include nouveau (which is in "auto") as it needs
|
||||
;; rust.
|
||||
;; TODO: Enable nouveau/NVK.
|
||||
|
@ -486,6 +499,53 @@ (define-public mesa
|
|||
(("'lp_test_arit', ") ""))))
|
||||
(_
|
||||
'((display "No tests to disable on this architecture.\n"))))))
|
||||
#$@(if (target-x86-64?)
|
||||
#~((add-after 'unpack 'patch-subproject-sources
|
||||
(lambda _
|
||||
;; Patch each relevant subproject source URL in wrapfiles to
|
||||
;; use the store, which avoids an attempt to download them
|
||||
;; mid-build.
|
||||
(for-each
|
||||
(match-lambda
|
||||
((name source)
|
||||
(let ((wrap-file (string-append
|
||||
"subprojects/" name ".wrap"))
|
||||
(subproject-dest (string-append
|
||||
"subprojects/" name))
|
||||
(overlay-dir (string-append
|
||||
"subprojects/packagefiles/" name)))
|
||||
(copy-recursively source subproject-dest)
|
||||
;; Normally when the patch_directory wrap file property
|
||||
;; is specified, meson automatically copies from
|
||||
;; packagefiles, but this is not the case here (only
|
||||
;; happens when downloading source?) so we manually copy
|
||||
;; overlay-dir to subproject-dest.
|
||||
(when (file-exists? overlay-dir)
|
||||
(copy-recursively overlay-dir subproject-dest))
|
||||
(call-with-output-file wrap-file
|
||||
(lambda (port)
|
||||
(format port "[wrap-file]
|
||||
directory = ~a
|
||||
"
|
||||
name))))))
|
||||
'#+(map (lambda (pkg)
|
||||
(let ((name (package-upstream-name* pkg))
|
||||
(version (package-version pkg)))
|
||||
(list (package-upstream-name* pkg)
|
||||
(file-append pkg
|
||||
"/share/cargo/src/"
|
||||
name "-" version))))
|
||||
(let ((from-crates-io
|
||||
(cut module-ref
|
||||
(resolve-interface
|
||||
'(gnu packages crates-io))
|
||||
<>)))
|
||||
(list (from-crates-io 'rust-syn-2)
|
||||
(from-crates-io 'rust-unicode-ident-1)
|
||||
(from-crates-io 'rust-quote-1)
|
||||
(from-crates-io 'rust-proc-macro2-1)
|
||||
(from-crates-io 'rust-paste-1))))))))
|
||||
#~())
|
||||
(add-before 'configure 'fix-dlopen-libnames
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((out #$output))
|
||||
|
|
Loading…
Reference in a new issue