nongnu: nvidia-cg-toolkit: Fix i686 build.

* nongnu/packages/game-development.scm (nvidia-cg-toolkit): Extract the
  different archive sources.
  Set the supported-systems to i686-linux and x86_64-linux.
This commit is contained in:
Pierre Neidhardt 2020-01-02 12:16:45 +01:00
parent 804ff2cc2b
commit 0c7cef591b

View file

@ -27,29 +27,42 @@
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages xorg)) #:use-module (gnu packages xorg))
(define-public nvidia-cg-toolkit (define nvidia-cg-toolkit-version "3.1")
(let ((arch (match (or (%current-target-system) (define nvidia-cg-toolkit-date "April2012")
(%current-system))
("x86_64-linux" "x86_64") (define nvidia-cg-toolkit-i686-archive
("i686-linux" "x86") (origin
(_ "")))
(lib (match (or (%current-target-system)
(%current-system))
("x86_64-linux" "lib64")
("i686-linux" "lib")
(_ "")))
(date "April2012"))
(package
(name "nvidia-cg-toolkit")
(version "3.1")
(source (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append "http://developer.download.nvidia.com/cg/Cg_" (string-append "http://developer.download.nvidia.com/cg/Cg_"
version "/Cg-" version "_" date "_" arch ".tgz")) nvidia-cg-toolkit-version
"/Cg-" nvidia-cg-toolkit-version "_" nvidia-cg-toolkit-date "_"
"x86" ".tgz"))
(sha256 (sha256
(base32 (base32 "0yc8n6vpqyb6qhcv5kwvr3h21ya271fi930fvd98hlkg8cg5kwyf"))))
"0y4qms4lm9xiix93g45337rx5nrp0y3gb0x0avyv7l9qrkk03zz8"))))
(define nvidia-cg-toolkit-x86_64-archive
(origin
(method url-fetch)
(uri
(string-append "http://developer.download.nvidia.com/cg/Cg_"
nvidia-cg-toolkit-version
"/Cg-" nvidia-cg-toolkit-version "_" nvidia-cg-toolkit-date "_"
"x86_64" ".tgz"))
(sha256
(base32 "0y4qms4lm9xiix93g45337rx5nrp0y3gb0x0avyv7l9qrkk03zz8"))))
(define (lib)
(match (or (%current-target-system)
(%current-system))
("x86_64-linux" "lib64")
("i686-linux" "lib")))
(define-public nvidia-cg-toolkit
(package
(name "nvidia-cg-toolkit")
(version nvidia-cg-toolkit-version)
(source #f)
(build-system binary-build-system) (build-system binary-build-system)
(arguments (arguments
`(#:strip-binaries? #f ; Fails with "allocated section `.dynstr' not in segment". `(#:strip-binaries? #f ; Fails with "allocated section `.dynstr' not in segment".
@ -61,15 +74,28 @@
("bin/cgfxcat" ("bin/cgfxcat"
("out" "glibc" "glu" "mesa" "libice" "libsm" ("out" "glibc" "glu" "mesa" "libice" "libsm"
"libxmu" "libxt" "libxi" "libxext" "libx11")) "libxmu" "libxt" "libxi" "libxext" "libx11"))
("lib64/libCg.so" (,,(string-append (lib) "/libCg.so")
("glibc")) ("glibc"))
("lib64/libCgGL.so" (,,(string-append (lib) "/libCgGL.so")
("out" "glibc"))) ("out" "glibc")))
#:install-plan #:install-plan
`(("bin" (".") "bin/") `(("bin" (".") "bin/")
(,,lib (".") "lib/") (,,(lib) (".") "lib/")
("include" (".") "include/") ("include" (".") "include/")
("local" (".") "share/")))) ("local" (".") "share/"))
#:phases
(modify-phases %standard-phases
(replace 'unpack
(lambda* (#:key inputs #:allow-other-keys)
(let ((archive (assoc-ref inputs "nvidia-cg-toolkit-archive")))
(invoke "tar" "xf" archive)
(chdir "usr")
#t))))))
(native-inputs
`(("nvidia-cg-toolkit-archive"
,(match (or (%current-target-system) (%current-system))
("x86_64-linux" nvidia-cg-toolkit-x86_64-archive)
(_ nvidia-cg-toolkit-i686-archive)))))
(inputs (inputs
`(("gcc:lib" ,gcc "lib") `(("gcc:lib" ,gcc "lib")
("glibc" ,glibc) ("glibc" ,glibc)
@ -93,4 +119,5 @@ The Cg Toolkit is a legacy NVIDIA toolkit no longer under active development
or support. It is not recommended using it in new development projects or support. It is not recommended using it in new development projects
because future hardware features may not be supported. Going forward, new because future hardware features may not be supported. Going forward, new
development should opt for GLSL rather than Cg.") development should opt for GLSL rather than Cg.")
(license (license:nonfree "file://share/Cg/docs/license.txt"))))) (supported-systems '("i686-linux" "x86_64-linux"))
(license (license:nonfree "file://share/Cg/docs/license.txt"))))