gnu: Add tesseract-engine.

* gnu/packages/game-development.scm (tesseract-engine): New variable.
This commit is contained in:
Pierre Neidhardt 2020-06-20 19:26:48 +02:00
parent b38556ea7f
commit f67ae66689
No known key found for this signature in database
GPG key ID: 9BDCF497A4BBCC7F

View file

@ -2393,3 +2393,95 @@ (define-public dhewm3
support), has much better support for widescreen resolutions and has 64bit support), has much better support for widescreen resolutions and has 64bit
support.") support.")
(license license:gpl3))) (license license:gpl3)))
(define-public tesseract-engine
(let ((svn-revision 2411))
(package
(name "tesseract-engine")
(version (string-append "20200615-" (number->string svn-revision)))
(source
(origin
(method svn-fetch)
(uri (svn-reference
(url "svn://svn.tuxfamily.org/svnroot/tesseract/main")
(revision svn-revision)))
(file-name (git-file-name name version))
(sha256
(base32 "1av9jhl2ivbl7wfszyhyna84llvh1z2d8khkmadm8d105addj10q"))
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file-recursively
'("bin" "bin64"
;; Remove "media" since some files such as
;; media/sound/game/soundsnap/info.txt refer to a
;; non-commercial license.
"media"
"server.bat"
"tesseract.bat"
"src/lib"
"src/lib64"))
#t))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list "CC=gcc")
#:tests? #f ; No tests.
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'cd-src
(lambda _ (chdir "src") #t))
(add-before 'build 'fix-env
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CPATH"
(string-append (assoc-ref inputs "sdl2-union")
"/include/SDL2:"
(or (getenv "CPATH") "")))
#t))
(add-after 'install 'really-install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share/tesseract"))
(bin (string-append out "/bin/tesseract"))
(client (string-append out "/bin/tesseract-client")))
(chdir "..") ; Back to root.
(for-each
(lambda (dir)
(mkdir-p (string-append share "/" dir))
(copy-recursively dir (string-append share "/" dir)))
'("config"))
(mkdir-p (string-append out "/bin/"))
(copy-file "bin_unix/native_client" client)
(copy-file "bin_unix/native_server"
(string-append out "/bin/tesseract-server"))
(call-with-output-file bin
(lambda (p)
(format p "#!~a
TESS_DATA=~a
TESS_BIN=~a
TESS_OPTIONS=\"-u$HOME/.tesseract\"
cd \"$TESS_DATA\"
exec \"$TESS_BIN\" \"$TESS_OPTIONS\" \"$@\""
(which "bash")
share
client)))
(chmod bin #o755)
(install-file "src/readme_tesseract.txt"
(string-append out "/share/licenses/tesseract/LICENSE")))
#t)))))
(inputs
`(("sdl2-union" ,(sdl-union (list sdl2 sdl2-mixer sdl2-image)))
("zlib" ,zlib)
("libpng" ,libpng)
("libgl" ,mesa)))
(home-page "http://tesseract.gg/")
(synopsis "First-person shooter engine with map editing, instagib, DM and CTF")
(description "This package contains the game engine of Tesseract, a
first-person shooter focused on cooperative in-game map editing.
The engine is derived from @emph{Cube 2: Sauerbraten} technology but with
upgraded modern rendering techniques. The new rendering features include
fully dynamic omnidirectional shadows, global illumination, HDR lighting,
deferred shading, morphological / temporal / multisample anti-aliasing, and
much more.")
(license license:zlib))))