gnu: Add warsow-qfusion.

* gnu/packages/patches/warsow-qfusion-fix-bool-return-type.patch: New file.
* gnu/local.mk: Include patch.
* gnu/packages/game-development.scm (warsow-qfusion): New variable.
This commit is contained in:
Pierre Neidhardt 2020-05-02 17:51:21 +02:00
parent a4be14261c
commit 0b5bf61573
No known key found for this signature in database
GPG key ID: 9BDCF497A4BBCC7F
3 changed files with 104 additions and 0 deletions

View file

@ -38,6 +38,7 @@
(define-module (gnu packages game-development)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
@ -2225,3 +2226,83 @@ rigid body physics library written in C.")
developers providing an advanced true color console, input, and lots of other
utilities frequently used in roguelikes.")
(license license:bsd-3)))
(define-public warsow-qfusion
;; As of 2020-04-09, the latest stable version 2.1.0 is deprecated.
;; The 2.5 beta as published on the homepage is commit
;; c4de15df559410aff0ca6643724e24cddb0ecbbd
(let ((commit "c4de15df559410aff0ca6643724e24cddb0ecbbd"))
(package
(name "warsow-qfusion")
(version (git-version "2.5" "1" commit)) ; 2.5-beta
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Warsow/qfusion/")
(commit commit)
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32
"0xv2yycr43p3xmq7lm6j6zb3cpcr6w00x7qg918faq0mw9j7v48g"))
;; Issue reported here: https://github.com/Warsow/qfusion/issues/46
(patches (search-patches "warsow-qfusion-fix-bool-return-type.patch"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; No tests.
#:configure-flags '("-DQFUSION_GAME=Warsow")
#:modules
((guix build utils)
(guix build cmake-build-system)
(ice-9 match))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'change-to-build-dir
(lambda _
(chdir "source")
#t))
(add-after 'install 'really-install
(lambda* (#:key outputs system #:allow-other-keys)
(let ((arch (match system
("x86_64-linux" "x86_64")
("i686-linux" "i386")))
(out (assoc-ref outputs "out")))
(install-file (string-append "../source/build/basewsw/libgame_"
arch ".so")
(string-append out "/lib/"))
(install-file (string-append "../source/build/libui_" arch ".so")
(string-append out "/lib/"))
(for-each
(lambda (file)
(install-file file (string-append out "/bin/")))
(append (find-files "../source/build" "warsow")
(find-files "../source/build" "wsw_server."))))
#t)))))
(inputs
`(("alsa-lib" ,alsa-lib)
("curl" ,curl)
("freetype" ,freetype)
("ffmpeg" ,ffmpeg)
("libjpeg" ,libjpeg)
("libogg" ,libogg)
("libpng" ,libpng)
("libtheora" ,libtheora)
("libvorbis" ,libvorbis)
("mesa" ,mesa)
("openal" ,openal)
("pulseaudio" ,pulseaudio)
("qtbase" ,qtbase)
("qtdeclarative" ,qtdeclarative)
("sdl2" ,sdl2)
("uuid.h" ,util-linux)
("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "https://github.com/Warsow/qfusion")
(supported-systems '("i686-linux" "x86_64-linux"))
(synopsis "Warsow's fork of qfusion, the id Tech 2 derived game engine")
(description
"This package contains the game engine of Warsow, a first-person
shooter video game. The engine is based on qfusion, the id Tech 2 derived
game engine. id Tech 2 is the engine originally behind Quake 2.")
(license license:gpl2+))))