diff options
Diffstat (limited to 'gnu/packages/game-development.scm')
-rw-r--r-- | gnu/packages/game-development.scm | 136 |
1 files changed, 102 insertions, 34 deletions
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 40807450ea..06bf4041df 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -15,13 +15,14 @@ ;;; Copyright © 2017, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> -;;; Copyright © 2019, 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at> +;;; Copyright © 2019, 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com> ;;; Copyright © 2019 Jethro Cao <jethrocao@gmail.com> ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si> ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro> ;;; Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz> +;;; Copyright © 2020-2021 James Smith <jsubuntuxp@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +40,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages game-development) - #:use-module (srfi srfi-1) + #:use-module ((srfi srfi-1) #:hide (zip)) #:use-module (ice-9 match) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) @@ -55,6 +56,7 @@ #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages compression) #:use-module (gnu packages check) @@ -99,6 +101,7 @@ #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages web) + #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xiph) #:use-module (gnu packages xml) @@ -447,10 +450,71 @@ GUI toolkit, lighting and physics frameworks and @code{Tiled} TMX format support.") (license license:gpl3+))) +(define-public slade + (package + (name "slade") + (version "3.1.13") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sirjuddington/SLADE") + (commit version))) + (sha256 (base32 "009yc5m6y074wfalvwbrnv2zsmaf9yhbi8hzgs973di0zqnqv011")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags + (list "-DWX_GTK3=ON" "-DNO_WEBVIEW=ON" + (string-append "-DWITH_WXPATH=" + (assoc-ref %build-inputs "wxwidgets") "/bin") + (string-append "-DwxWidgets_LIBRARIES=" + (assoc-ref %build-inputs "wxwidgets") "/lib")) + #:phases + (modify-phases %standard-phases + (add-before 'build 'reset-slade.pk3-timestamps + ;; This is neccessary to make slade reproducible due to + ;; <https://bugs.gnu.org/44741>. TODO: Remove on next core update + ;; cycle. + (lambda _ + (invoke "find" "../source/dist/res" "-exec" "touch" + "--no-dereference" "-t" "197001010000.00" "{}" + "+"))) + (add-after 'install 'wrap-with-x11-gdk-backend + ;; Set GDK_BACKEND to x11 to prevent crash on Wayland. + ;; See https://github.com/sirjuddington/SLADE/issues/1097 for details. + (lambda* (#:key outputs #:allow-other-keys) + (wrap-program + (string-append (assoc-ref outputs "out") + "/bin/slade") + '("GDK_BACKEND" = ("x11")))))) + #:tests? #f)) ;; No test suite. + (inputs + `(("bash" ,bash-minimal) + ("curl" ,curl) + ("fluidsynth" ,fluidsynth) + ("freeimage" ,freeimage) + ("ftgl" ,ftgl) + ("glew" ,glew) + ("gtk+" ,gtk+) + ("sfml" ,sfml) + ("wxwidgets" ,wxwidgets-3.1))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which) + ("zip" ,zip))) + (home-page "https://slade.mancubus.net") + (synopsis "Doom game data editor") + (description "SLADE3 is a modern editor for Doom-engine based games and +source ports. It has the ability to view, modify, and write many different game- +specific formats, and even convert between some of them, or from/to other generic +formats such as PNG.") + (license license:gpl2+))) + (define-public tiled (package (name "tiled") - (version "1.5.0") + (version "1.7.2") (source (origin (method git-fetch) (uri (git-reference @@ -459,7 +523,7 @@ support.") (file-name (git-file-name name version)) (sha256 (base32 - "1prajkx1xpp3csa0xpkrn3c2cnzvmwzxgrqb9d3gqszp3sllr2dg")))) + "1ifxh3sv6gz32gahgi7ba0ivcw5mfgwnrw6iycpav150w9xla43i")))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase-5) @@ -758,35 +822,39 @@ programming language.") (license license:zlib))) (define-public love-nuklear - (let ((version "v2.6") - (commit "fef4e00a602efb16c57ae962850b6e7a01f7a29a")) - (package - (name "love-nuklear") - (version (git-version version "1" commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/keharriso/love-nuklear/") - (commit commit) - (recursive? #t))) - ;; NOTE: the HEAD of the Nuklear git-submodule is at commit - ;; "adc52d710fe3c87194b99f540c53e82eb75c2521" of Oct 1 2019 - (file-name (git-file-name name version)) - (sha256 - (base32 - "15qmy8mfwkxy2x9rmxs6f9cyvjvwwj6yf78bs863xmc56dmjzzbn")))) - (build-system cmake-build-system) - (arguments - `(#:build-type "Release" - #:tests? #f)) - (inputs - `(("luajit" ,luajit))) - (synopsis "Lightweight immediate mode GUI for LÖVE games") - (description "LÖVE is a Lua framework for making 2D games. Nuklear + (package + (name "love-nuklear") + (version "2.6.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/keharriso/love-nuklear/") + (commit (string-append "v" version)) + (recursive? #t))) + ;; NOTE: the HEAD of the Nuklear git-submodule is at commit + ;; "adc52d710fe3c87194b99f540c53e82eb75c2521" of Oct 1 2019 + (file-name (git-file-name name version)) + (sha256 + (base32 + "090xp5c975155hd1pa7bdssdlawvygs5s6icdkwbyc8il5kg5kgv")))) + (build-system cmake-build-system) + (arguments + `(#:build-type "Release" + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-cmake + (lambda _ + (substitute* "CMakeLists.txt" + (("DESTINATION .") "DESTINATION lib/love"))))))) + (inputs + `(("luajit" ,luajit))) + (synopsis "Lightweight immediate mode GUI for LÖVE games") + (description "LÖVE is a Lua framework for making 2D games. Nuklear is a minimal state immediate mode graphical user interface toolkit. This package is the Nuklear bindings for LÖVE created by Kevin Harrison.") - (home-page "https://github.com/keharriso/love-nuklear/") - (license license:expat)))) + (home-page "https://github.com/keharriso/love-nuklear/") + (license license:expat))) (define-public allegro-4 (package @@ -830,7 +898,7 @@ etc.") (define-public allegro (package (name "allegro") - (version "5.2.5.0") + (version "5.2.7.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/liballeg/allegro5/releases" @@ -838,7 +906,7 @@ etc.") version ".tar.gz")) (sha256 (base32 - "06dpkfnac8w3pq36834nn2iij3ajz6prladqd0w92lq39aiqv5jr")))) + "034pmbmbq6jagpp4lhnyjqmf8gcz5fx74d9rknrm7d4wv4cv7qy1")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; there are no tests (inputs @@ -846,7 +914,7 @@ etc.") `(("flac" ,flac) ("freetype" ,freetype) ("glu" ,glu) - ("gtk" ,gtk+-2) + ("gtk" ,gtk+) ("libjpeg" ,libjpeg-turbo) ("libpng" ,libpng) ("libtheora" ,libtheora) |