guix-packages/ambrevar/games: Add eduke32

master
Pierre Neidhardt 2019-02-26 10:57:09 +01:00
parent 0f847a9e73
commit 09e43e9428
1 changed files with 79 additions and 0 deletions

View File

@ -0,0 +1,79 @@
(define-module (ambrevar games)
#:use-module ((guix packages) #:select (package origin base32))
#:use-module ((guix download) #:select (url-fetch))
#:use-module ((guix licenses) #:prefix license:)
#:use-module ((guix build-system gnu) #:select (gnu-build-system))
#:use-module ((guix build-system trivial) #:select (trivial-build-system))
;; Inputs
#:use-module (gnu packages base)
#:use-module ((gnu packages sdl) #:select (sdl-union sdl2 sdl2-mixer))
#:use-module ((gnu packages gl) #:select (glu))
#:use-module ((gnu packages pkg-config) #:select (pkg-config))
#:use-module ((gnu packages xiph) #:select (libvorbis flac))
#:use-module ((gnu packages video) #:select (libvpx))
#:use-module ((gnu packages gtk) #:select (gtk+-2)))
(define-public eduke32
(package
(name "eduke32")
(version "20181027-7136")
(source
(origin
(method url-fetch)
(uri (string-append "http://dukeworld.duke4.net/eduke32/synthesis/"
version
"/eduke32_src_"
version
".tar.xz"))
(sha256
(base32 "121k2k7ylw8dvs71mrdy7hwb1a2xd5di7jdqc20a1ml5k0n9akpn"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'set-paths 'set-sdl-paths
;; The makefile adds the output of `sdl2-config --cflags` to the
;; compiler flags, but sdl2-config gives us the wrong directory to
;; include. We have to add the SDL2 header directory ourselves.
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CPLUS_INCLUDE_PATH"
(string-append (assoc-ref inputs "sdl-union")
"/include/SDL2"
":"
(getenv "CPLUS_INCLUDE_PATH")))
#t))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(glu (assoc-ref inputs "glu")))
;; TODO: Install custom .desktop file? Need icon.
;; See https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=eduke32.
(install-file "eduke32" (string-append out "/bin"))
(install-file "mapster32" (string-append out "/bin"))
(install-file "package/common/buildlic.txt" (string-append out "/share/licenses"))
(wrap-program (string-append out "/bin/eduke32")
`("LD_LIBRARY_PATH" ":" prefix
(,(string-append glu "/lib"))))))))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("sdl-union" ,(sdl-union (list sdl2 sdl2-mixer)))
("glu" ,glu)
("libvorbis" ,libvorbis)
("libvpx" ,libvpx)
("flac" ,flac)
("gtk+" ,gtk+-2)))
(synopsis "Source port of the classic PC first person shooter Duke Nukem 3D")
(description "EDuke32 is an awesome, free homebrew game engine and source port of the
classic PC first person shooter Duke Nukem 3DDuke3D for shortto Windows,
Linux, Mac OS X, FreeBSD, several handhelds, your family toaster, and to your
girlfriend's vibrator. We've added thousands of cool and useful features and
upgrades for regular players and additional editing capabilities and scripting
extensions for homebrew developers and mod creators. EDuke32 is open source
software that is completely free to use for all non-commercial purposes.")
(home-page "https://eduke32.com/")
(license ((@@ (guix licenses) license) "BUILD license"
"https://eduke32.com/buildlic.txt"
""))))