summaryrefslogtreecommitdiff
path: root/gnu/packages/games.scm
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2022-09-18 19:56:20 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2022-09-18 19:56:20 +0200
commit31a56967e2869c916b7a5e8ee570e8e10f0210a5 (patch)
tree8aeb7dabb64b80337e35f72fbeb950cc4b72ae93 /gnu/packages/games.scm
parent1066a424dc083b02d4f7a16316a7d223fd64aa6c (diff)
gnu: hyperrogue: Update to 12.1a.
* gnu/packages/games.scm (hyperrogue): Update to 12.1a. [source]<origin>: Set upstream to GitHub. [arguments]: Use G-expressions. <phases>: Remove INSTALL-DATA phase. Remove trailing #T. [home-page]: Fix URL.
Diffstat (limited to 'gnu/packages/games.scm')
-rw-r--r--gnu/packages/games.scm150
1 files changed, 56 insertions, 94 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 60ce0167a6..0bf36fa620 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -5892,101 +5892,63 @@ throwing people around in pseudo-randomly generated buildings.")
(define-public hyperrogue
(package
(name "hyperrogue")
- (version "11.3a")
- ;; When updating this package, be sure to update the "hyperrogue-data"
- ;; origin in native-inputs.
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://www.roguetemple.com/z/hyper/hyperrogue"
- (string-join (string-split version #\.) "")
- "-src.tgz"))
- (sha256
- (base32
- "1yxabbswq02fc5frigvs43f83m5vlxybc7n5mynkwzj2c70lfp2k"))))
+ (version "12.1a")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/zenorogue/hyperrogue")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1l09d1r3jdwp54zq071fk09hpggif5phjn0gsapzrjy3i289jran"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; no check target
- #:make-flags '("HYPERROGUE_USE_GLEW=1"
- "HYPERROGUE_USE_PNG=1")
- #:phases
- (modify-phases %standard-phases
- (add-after 'set-paths 'set-sdl-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "CPATH"
- (string-append (or (getenv "CPATH") "") ":"
- (assoc-ref inputs "sdl-union")
- "/include/SDL"))))
- (replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (share-dir (string-append out "/share/hyperrogue"))
- (dejavu-dir (string-append
- (assoc-ref inputs "font-dejavu")
- "/share/fonts/truetype"))
- (dejavu-font "DejaVuSans-Bold.ttf")
- (music-file "hyperrogue-music.txt"))
- ;; Fix font and music paths.
- (substitute* "basegraph.cpp"
- ((dejavu-font)
- (string-append dejavu-dir "/" dejavu-font)))
- (substitute* music-file
- (("\\*/")
- (string-append share-dir "/sounds/")))
- (substitute* "sound.cpp"
- (("musicfile = \"\"")
- (string-append "musicfile = \""
- share-dir "/" music-file "\"")))
- ;; Disable build machine CPU optimizations and warnings treated
- ;; as errors.
- (substitute* "Makefile"
- (("-march=native") "")
- (("-Werror") "")))
- #t))
- (replace 'install
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (share-dir (string-append out "/share/hyperrogue")))
- (mkdir-p bin)
- (install-file "hyperrogue" bin)
- (install-file "hyperrogue-music.txt" share-dir))
- #t))
- (add-after 'install 'install-data
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((data (assoc-ref inputs "hyperrogue-data"))
- (out (assoc-ref outputs "out"))
- (sounds (string-append out "/share/hyperrogue/sounds"))
- (unzip (search-input-file inputs "/bin/unzip")))
- ;; Extract media license information into sounds directory.
- (invoke unzip "-j" data
- (string-append
- "hyperrogue"
- (string-join (string-split ,version #\.) "")
- "/sounds/credits.txt") "-d" sounds)
- ;; Extract sounds and music into sounds directory.
- (invoke "unzip" "-j" data
- (string-append
- "hyperrogue"
- (string-join (string-split ,version #\.) "")
- "/*.ogg") "-d" sounds)))))))
- (native-inputs
- `(("hyperrogue-data"
- ,(origin
- (method url-fetch)
- (uri
- (string-append
- "https://www.roguetemple.com/z/hyper/hyperrogue"
- (string-join (string-split version #\.) "")
- "-win.zip"))
- (sha256
- (base32
- "11yhbia45f1w9z0j67h9nynwjqmvakr9l6rnrmdrdkzin6lvzzj4"))))
- ("unzip" ,unzip)))
+ (list
+ #:tests? #f ; no check target
+ #:make-flags #~(list "HYPERROGUE_USE_GLEW=1"
+ "HYPERROGUE_USE_PNG=1")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'set-paths 'set-sdl-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "CPATH"
+ (string-append (or (getenv "CPATH") "") ":"
+ (search-input-directory inputs
+ "/include/SDL")))))
+ (replace 'configure
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((share-dir (string-append #$output "/share/hyperrogue/"))
+ (fonts-dir (dirname
+ (search-input-file inputs
+ "DejaVuSans-Bold.ttf"))))
+ ;; Set fonts and music path.
+ (substitute* "sysconfig.h"
+ (("(#define HYPERPATH ).*" _ lead)
+ (string-append lead "\"" share-dir "\"\n"))
+ (("(#define HYPERFONTPATH ).*" _ lead)
+ (string-append lead "\"" fonts-dir "/\"\n")))
+ ;; Disable build machine CPU optimizations and warnings treated
+ ;; as errors.
+ (substitute* "Makefile"
+ (("-march=native") "")
+ (("-Werror") "")))))
+ (replace 'install
+ (lambda _
+ (install-file "hyperrogue" (string-append #$output "/bin"))
+ (let ((share-dir (string-append #$output "/share/hyperrogue/")))
+ (install-file "hyperrogue-music.txt" share-dir)
+ (for-each (lambda (dir)
+ (copy-recursively dir
+ (string-append share-dir dir)))
+ '("music" "sounds"))))))))
(inputs
- (list font-dejavu glew libpng
+ (list font-dejavu
+ glew
+ libpng
(sdl-union (list sdl sdl-gfx sdl-mixer sdl-ttf))))
- (home-page "https://www.roguetemple.com/z/hyper/")
+ (home-page "https://roguetemple.com/z/hyper")
(synopsis "Non-euclidean graphical rogue-like game")
(description
"HyperRogue is a game in which the player collects treasures and fights
@@ -5999,9 +5961,9 @@ are home to particular creatures and may be subject to their own rules of
While the game can use ASCII characters to display the the classical rogue
symbols, it still needs graphics to render the non-euclidean world.")
- (license (list license:bsd-3 ; glew.c, mtrand.*
- license:cc-by-sa3.0 ; music
- license:cc-by-sa4.0 ; sounds
+ (license (list license:bsd-3 ; glew.c, mtrand.*
+ license:cc-by-sa3.0 ; music
+ license:cc-by-sa4.0 ; sounds
license:cc0
license:public-domain ; direntx.*, some sounds
license:zlib ; savepng.*