summaryrefslogtreecommitdiff
path: root/nongnu/packages/game-development.scm
diff options
context:
space:
mode:
Diffstat (limited to 'nongnu/packages/game-development.scm')
-rw-r--r--nongnu/packages/game-development.scm141
1 files changed, 84 insertions, 57 deletions
diff --git a/nongnu/packages/game-development.scm b/nongnu/packages/game-development.scm
index 8cc2287..5888d13 100644
--- a/nongnu/packages/game-development.scm
+++ b/nongnu/packages/game-development.scm
@@ -27,63 +27,89 @@
#:use-module (gnu packages gl)
#:use-module (gnu packages xorg))
+(define nvidia-cg-toolkit-version "3.1")
+(define nvidia-cg-toolkit-date "April2012")
+
+(define nvidia-cg-toolkit-i686-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" ".tgz"))
+ (sha256
+ (base32 "0yc8n6vpqyb6qhcv5kwvr3h21ya271fi930fvd98hlkg8cg5kwyf"))))
+
+(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
- (let ((arch (match (or (%current-target-system)
- (%current-system))
- ("x86_64-linux" "x86_64")
- ("i686-linux" "x86")
- (_ "")))
- (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)
- (uri
- (string-append "http://developer.download.nvidia.com/cg/Cg_"
- version "/Cg-" version "_" date "_" arch ".tgz"))
- (sha256
- (base32
- "0y4qms4lm9xiix93g45337rx5nrp0y3gb0x0avyv7l9qrkk03zz8"))))
- (build-system binary-build-system)
- (arguments
- `(#:strip-binaries? #f ; Fails with "allocated section `.dynstr' not in segment".
- #:patchelf-plan
- `(("bin/cgc"
- ("glibc" "out"))
- ("bin/cginfo"
- ("gcc:lib" "glibc"))
- ("bin/cgfxcat"
- ("out" "glibc" "glu" "mesa" "libice" "libsm"
- "libxmu" "libxt" "libxi" "libxext" "libx11"))
- ("lib64/libCg.so"
- ("glibc"))
- ("lib64/libCgGL.so"
- ("out" "glibc")))
- #:install-plan
- `(("bin" (".") "bin/")
- (,,lib (".") "lib/")
- ("include" (".") "include/")
- ("local" (".") "share/"))))
- (inputs
- `(("gcc:lib" ,gcc "lib")
- ("glibc" ,glibc)
- ("glu" ,glu)
- ("libice" ,libice)
- ("libsm" ,libsm)
- ("libxmu" ,libxmu)
- ("libxt" ,libxt)
- ("libxi" ,libxi)
- ("libxext" ,libxext)
- ("libx11" ,libx11)))
- (home-page "https://developer.nvidia.com/cg-toolkit")
- (synopsis "High-level shading language")
- (description "NVIDIA introduced programmable shading with Cg, which
+ (package
+ (name "nvidia-cg-toolkit")
+ (version nvidia-cg-toolkit-version)
+ (source #f)
+ (build-system binary-build-system)
+ (arguments
+ `(#:strip-binaries? #f ; Fails with "allocated section `.dynstr' not in segment".
+ #:patchelf-plan
+ `(("bin/cgc"
+ ("glibc" "out"))
+ ("bin/cginfo"
+ ("gcc:lib" "glibc"))
+ ("bin/cgfxcat"
+ ("out" "glibc" "glu" "mesa" "libice" "libsm"
+ "libxmu" "libxt" "libxi" "libxext" "libx11"))
+ (,,(string-append (lib) "/libCg.so")
+ ("glibc"))
+ (,,(string-append (lib) "/libCgGL.so")
+ ("out" "glibc")))
+ #:install-plan
+ `(("bin" (".") "bin/")
+ (,,(lib) (".") "lib/")
+ ("include" (".") "include/")
+ ("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
+ `(("gcc:lib" ,gcc "lib")
+ ("glibc" ,glibc)
+ ("glu" ,glu)
+ ("libice" ,libice)
+ ("libsm" ,libsm)
+ ("libxmu" ,libxmu)
+ ("libxt" ,libxt)
+ ("libxi" ,libxi)
+ ("libxext" ,libxext)
+ ("libx11" ,libx11)))
+ (home-page "https://developer.nvidia.com/cg-toolkit")
+ (synopsis "High-level shading language")
+ (description "NVIDIA introduced programmable shading with Cg, which
supported dozens of different OpenGL and DirectX profile targets. It allowed
developers to incorporate interactive effects within 3D applications and share
them among other Cg applications, across graphics APIs, and most operating
@@ -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
because future hardware features may not be supported. Going forward, new
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"))))