unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
To: 35411@debbugs.gnu.org
Subject: [bug#35411] [PATCH] Add hedgewars
Date: Wed, 24 Apr 2019 09:59:37 +0200	[thread overview]
Message-ID: <87y33zrfyu.fsf@nicolasgoaziou.fr> (raw)

[-- Attachment #1: Type: text/plain, Size: 183 bytes --]

Hello,

The following patch adds hedgewars game. It requires sdl2-net package,
which I submitted in a pending patch (see bug#35391).

Feedback welcome.

Regards,

-- 
Nicolas Goaziou

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Add hedgewars --]
[-- Type: text/x-diff, Size: 5557 bytes --]

From f17328d8810b31653f3007bb4a4950822328a2e5 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Wed, 24 Apr 2019 09:52:52 +0200
Subject: [PATCH] gnu: Add hedgewars.

* gnu/packages/games.scm (hedgewars): New variable.
---
 gnu/packages/games.scm | 104 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 104 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index da917e2870..d51ecc60fa 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -6998,3 +6998,107 @@ pursue their favorite interesting flight simulation idea, and last but
 certainly not least as a fun, realistic, and challenging desktop flight
 simulator.")
     (license license:gpl2+)))
+
+(define-public hedgewars
+  (package
+    (name "hedgewars")
+    (version "0.9.25")
+    (source (origin
+              (method hg-fetch)
+              (uri (hg-reference
+                    (url "https://hg.hedgewars.org/hedgewars/")
+                    (changeset (string-append version "-release"))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "00rckhalhw596x7zpb7rwg9663019xbg1zafcxfnj4x3dg435rl5"))))
+    (build-system cmake-build-system)
+    (arguments
+     ;; XXX: Engine is written as Pascal source code, requiring Free Pascal
+     ;; Compiler, which we haven't packaged yet.  With the flag below, we use
+     ;; a Pascal to C translator and Clang instead.
+     `(#:configure-flags (list "-DBUILD_ENGINE_C=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-failing-test
+           ;; XXX: Remove single failing test.
+           (lambda _
+             (delete-file "tests/lua/staticmines.lua")
+             #t))
+         (add-after 'unpack 'fix-compiler
+           ;; XXX: Flag BUILD_ENGINE_C, as set above, implies using Clang to
+           ;; compile files.  However, using `clang' globally leads to the
+           ;; following issue:
+           ;; "qtbase-5.11.3/include/qt5/QtCore/qglobal.h:45:12: fatal error:
+           ;; 'type_traits' file not found".
+           ;;
+           ;; Therefore, we make sure to use `c++' everywhere but in the
+           ;; engine.
+           (lambda _
+             (substitute* "project_files/hwc/CMakeLists.txt"
+               (("find_package\\(SDL2_ttf 2 REQUIRED\\)" all)
+                (string-append all "\n"
+                               "set(CMAKE_C_COMPILER ${CLANG_EXECUTABLE})\n"
+                               "set(CMAKE_CXX_COMPILER ${CLANG_EXECUTABLE})")))
+             (substitute* "CMakeLists.txt"
+               (("set\\(CMAKE_C(XX)?_COMPILER \\$\\{CLANG_EXECUTABLE\\}\\)") ""))
+             #t))
+         (replace 'check
+           (lambda _
+             (invoke "ctest"))))))
+    (inputs
+     `(("clang" ,clang)
+       ("ffmpeg" ,ffmpeg)
+       ("freeglut" ,freeglut)
+       ("ghc" ,ghc)
+       ("ghc-entropy" ,ghc-entropy)
+       ("ghc-hslogger" ,ghc-hslogger)
+       ("ghc-network" ,ghc-network)
+       ("ghc-random" ,ghc-random)
+       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
+       ("ghc-sandi" ,ghc-sandi)
+       ("ghc-sha" ,ghc-sha)
+       ("ghc-utf8-string" ,ghc-utf8-string)
+       ("ghc-vector" ,ghc-vector)
+       ("ghc-zlib" ,ghc-zlib)
+       ("glew" ,glew)
+       ("libpng" ,libpng)
+       ("lua" ,lua-5.1)
+       ("physfs" ,physfs)
+       ("qtbase" ,qtbase)
+       ("sdl" ,(sdl-union
+                (list sdl2 sdl2-mixer sdl2-net sdl2-ttf sdl2-image)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)))
+    (home-page "https://hedgewars.org/")
+    (synopsis "Funny turn-based artillery game, featuring fighting hedgehogs!")
+    (description
+     "Each player controls a team of several hedgehogs.  During the course of
+the game, players take turns with one of their hedgehogs.  They then use
+whatever tools and weapons are available to attack and kill the opponents'
+hedgehogs, thereby winning the game.
+
+Hedgehogs may move around the terrain in a variety of ways, normally by
+walking and jumping but also by using particular tools such as the ``Rope'' or
+``Parachute'', to move to otherwise inaccessible areas.  Each turn is
+time-limited to ensure that players do not hold up the game with excessive
+thinking or moving.  A large variety of tools and weapons are available for
+players during the game: Grenade, Cluster Bomb, Bazooka, UFO, Homing Bee,
+Shotgun, Desert Eagle, Fire Punch, Baseball Bat, Dynamite, Mine, Rope,
+Pneumatic pick, Parachute.  Most weapons, when used, cause explosions that
+deform the terrain, removing circular chunks.
+
+The landscape is an island floating on a body of water, or a restricted cave
+with water at the bottom.  A hedgehog dies when it enters the water (either by
+falling off the island, or through a hole in the bottom of it), it is thrown
+off either side of the arena or when its health is reduced, typically from
+contact with explosions, to zero (the damage dealt to the attacked hedgehog or
+hedgehogs after a player's or CPU turn is shown only when all movement on the
+battlefield has ceased).")
+    ;; Software as a whole is licensed under GPL-2 terms.  Artwork and
+    ;; scripts are distributed under various terms.
+    (license (list license:gpl2
+                   license:bsd-2 license:bsd-3 license:cc-by3.0 license:cc0
+                   license:expat license:fdl-1.3+ license:public-domain
+                   license:zlib))))
-- 
2.21.0


             reply	other threads:[~2019-04-24  8:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-24  7:59 Nicolas Goaziou [this message]
2019-04-24 10:42 ` [bug#35411] [PATCH] Add hedgewars Ricardo Wurmus
2019-04-24 11:49   ` Nicolas Goaziou
2019-04-24 15:20     ` Ricardo Wurmus
2019-04-24 16:57       ` Nicolas Goaziou
2019-04-29 12:45 ` bug#35411: " Nicolas Goaziou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y33zrfyu.fsf@nicolasgoaziou.fr \
    --to=mail@nicolasgoaziou.fr \
    --cc=35411@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).