From 5035bc25a050ce6f81538000b59df05fb02b7e65 Mon Sep 17 00:00:00 2001 From: James Smith Date: Fri, 16 Oct 2020 11:24:14 -0700 Subject: [PATCH v2] gnu: Add slade. * gnu/packages/game-development.scm (slade): New variable. --- gnu/packages/game-development.scm | 63 ++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 96ed2f9da4..807b37b4e6 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2020 Nicolas Goaziou ;;; Copyright © 2020 Timotej Lazar ;;; Copyright © 2020 Giacomo Leidi +;;; Copyright © 2020 James Smith ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,7 +38,7 @@ ;;; along with GNU Guix. If not, see . (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) @@ -94,6 +95,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) @@ -441,6 +443,65 @@ GUI toolkit, lighting and physics frameworks and @code{Tiled} TMX format support.") (license license:gpl3+))) +(define-public slade + (package + (name "slade") + (version "3.1.12a") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sirjuddington/SLADE") + (commit version))) + (sha256 (base32 "1q37pqibnrbdd7zjx7h2kfi0q9nc63cc96q9ya4x3fvsrf64n6yd")) + (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 appears sufficient to make slade.pk3 reproducible. + (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"))) + #t))) + #:tests? #f)) ;; No test suite. + (inputs + `(("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") -- 2.28.0